我有一个不寻常的设置。首先,我有一个带框架的页面
<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)我需要选择器工作假设文档没有被加载,即使对象显示在屏幕上。
答案 0 :(得分:1)
嗯,你的问题中有一些细节遗漏,请原谅我,如果这不是你寻求的答案。
我相信您正试图在“带框架的页面”中注入一些脚本。 如果这是正确的,您只需在content_scripts部分的manifest.json中设置两个属性,如下所示:
"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之前或任何其他DOM 脚本运行。
参考文献: http://code.google.com/chrome/extensions/content_scripts.html