在manifest.json文件中,我声明我想要注入一些脚本,就像这样:
在内容脚本中,我创建了一个iframe等等。到目前为止它运行良好。就像这样:
问题是,在 iframe 中,它不会从内容脚本中继承任何东西。如果我想要使用 jQuery,我必须在 iframe 中再次使用
我希望不要再次包含 jQuery,因为我已经将其放入扩展中。我不希望用户在每个需要运行扩展的页面上都下载 jQuery。
我尝试了属性
请建议。谢谢。
编辑:我像这样将example.com添加到
{
"name": "my extension",
"version": "1.0",
"background_page": "background.html",
"permissions": ["contextMenus", "tabs", "http://*.example.com/*"],
"content_scripts": [
{
"matches":
[
"http://*.taobao.com/*",
"http://*.yintai.com/*"
],
"run_at": "document_idle",
"js": ["jquery-1.5.1.min.js","jquery-ui-1.8.13.custom.min.js", "contentscript.js"],
"all_frames": true
}
]
}
在内容脚本中,我创建了一个iframe等等。到目前为止它运行良好。就像这样:
$('<div id="my_notifier"></div>').appendTo($('body')).html('<iframe src="http://example.com"></iframe>');
问题是,在 iframe 中,它不会从内容脚本中继承任何东西。如果我想要使用 jQuery,我必须在 iframe 中再次使用
<script src=...
来包含它。我希望不要再次包含 jQuery,因为我已经将其放入扩展中。我不希望用户在每个需要运行扩展的页面上都下载 jQuery。
我尝试了属性
"all_frames": true
,但它没有起作用。请建议。谢谢。
编辑:我像这样将example.com添加到
matches
属性中:"content_scripts": [
{
"matches":
[
"http://*.taobao.com/*",
"http://*.yintai.com/*",
"http://*.example.com/*"
],
"run_at": "document_idle",
"js": ["jquery-1.5.1.min.js","jquery-ui-1.8.13.custom.min.js", "contentscript.js"],
"all_frames": true
}
]
但是它不起作用。
更清楚地说,iframe(example.com)的内容如下:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<div></div>
<script type="text/javascript">
$('div').html('hi');
</script>
</body>
</html>
会出现一个错误:$未定义
为了让它工作,我必须使用:
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
</head>
<body>
<div></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$('div').html('hi');
</script>
</body>
</html>
all_frames
设置为 true 的完整清单文件以及创建 iframe 的内容脚本代码吗? - serg