доступ к содержимому во фрейме, где документ никогда не загружается полностью

У меня необычная установка. Во-первых, у меня есть страница с фреймами

<html>

 <head>

  <title>My Chat</title>

</head>

 <frameset id="resize" rows="*,135">

  <frame name="Main" src="/chat/stream.pl">

  <frame name="Comm" src="/chat/realm.pl">

 </frameset>

</html> 

Основной фрейм имеет контент, который постоянно передается с сервера. Проблема в том, что браузер воспринимает это так, как будто страница никогда не загружалась, и тайм-аута не происходит. На странице есть такой контент.

<table class="PSTPRI" cellspacing="3" cellpadding="2">

  <tr>

   <td>

    <IMG SRC="http://mysite.com/myimage.jpg" HEIGHT="470" WIDTH="550" ALIGN="left" BORDER="0">

    <!-HEAD-->  lots of text for the post header <!-POST-->

    <p><span style="font-size: 11px; color: #FFFFFF; font-family: Verdana;">the post text<BR></span></p>

   </td>

  </tr>

  <!-- ...more content here, each post is a new TR  -->
</table>

Я хочу иметь возможность привязать живое событие к изображению в этом контенте. Предостережение: я делаю это как расширение Chrome, которое я назначаю странице, содержащей набор фреймов. Скрипт работает, мне просто нужно иметь возможность прикрепить событие к изображению. а пока вот пример события, которое я хочу прикрепить.

$('table.PSTPRI td img').live('click', function () {
    alert('test');
});

Однако проблема заключается в том, что 1) я не знаю, как выбрать изображение в правильном контексте, и 2) мне нужно, чтобы селектор работал, исходя из предположения, что документ никогда не загружается, даже если объекты отображаются на экране.


person Josh    schedule 11.09.2011    source источник
comment
+1, потому что тот, кто проголосовал против, не указал причину.   -  person Chad Levy    schedule 12.09.2011


Ответы (1)


Что ж, в вашем вопросе отсутствуют некоторые детали, поэтому простите меня, если это не тот ответ, который вы ищете.

Я считаю, что вы пытаетесь внедрить какие-то скрипты в свою «страницу с фреймами». Если это так, все, что вам нужно сделать, это установить два свойства в manifest.json в разделе content_scripts следующим образом:

"content_scripts": [
    {
      "matches": ["Match pattern for your page with frames"],
      "js": ["main_script.js"],
      "all_frames": true,
      "run_at": "document_start"
    },
    {...}
  ]

all_frames. Управляет запуском сценария контента во всех фреймах соответствующей страницы или только в верхнем фрейме.


run_at: контролирует, когда вставляются файлы в js. Может быть «document_start», «document_end» или «document_idle». По умолчанию «document_idle».

В случае «document_start» файлы вставляются после любых файлов из css, но до создания любого другого DOM или запуска любого другого скрипта.

Ссылки: http://code.google.com/chrome/extensions/content_scripts.html

person kbtz    schedule 11.09.2011