получить доступ к содержимому в кадре, в котором документ никогда не загружается полностью - PullRequest
1 голос
/ 11 сентября 2011

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

<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) мне нужен селектор, чтобы работать в предположении, что документ никогда не загружается, даже если объекты отображаются на экране.

1 Ответ

1 голос
/ 12 сентября 2011

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

Я считаю, что вы пытаетесь внедрить некоторые скрипты в свою "страницу с фреймами". Если это правильно, все, что вам нужно сделать, это установить два свойства в 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

...