【发布时间】:2016-03-10 17:08:59
【问题描述】:
假设 Google Chrome 中安装了 2 个扩展。
第一个扩展在 w3.org 上运行 content.js:
manifest.json:
"content_scripts": [{
"matches": [ "https://www.w3.org/*" ],
"all_frames": true,
"js": [ "content.js" ]
}]
content.js:
alert('content');
第二个扩展有 page.html,它将 w3.org 加载到 iframe 中:
manifest.json:
"web_accessible_resources": ["page.html"]
page.html:
<!DOCTYPE html>
<iframe src="https://www.w3.org/"></iframe>
现在在地址栏输入chrome-extension://2nd-extension-id/page.html。您将看到 w3.com,但 content.js 没有运行(没有 alert() 窗口)。我在控制台中没有看到错误。
问题是:如何允许内容脚本在这个 iframe 中运行?
我创建了Chrome issue。状态:WontFix,不幸的是。但这在未来可能会改变......
【问题讨论】:
-
你根本做不到。扩展不能在其他扩展中运行。允许这样的事情会使恶意扩展有可能做一些非常糟糕的事情。
-
@Marc Guiselin,没有。 w3.org 不是扩展的一部分,而是在具有标准权限的自己的上下文中运行。
标签: javascript iframe google-chrome-extension