【发布时间】:2016-02-25 02:39:58
【问题描述】:
所以我有一个可以注入一些 html 的扩展程序,这样屏幕的右下角就会显示我的一些书签网站。我希望能够单击这些元素并在我的内容脚本中运行代码。由于我可以访问所有 dom 元素,我认为我可以通过简单地使用 onclick 来做到这一点,但显然我不了解内容脚本的范围和页面本身。
通过内容脚本注入 html/css,并将模板导入到创建影子 dom 的宿主元素中。我不认为 shadow dom 影响了 js 作用域,但这是有可能的。
我已经注入了一些 html,所以可能的重复不适用。
onclick 看起来像..
<div onclick="selectLink(0)">Link</div>
在我的内容脚本中,我有
// changes the groups coresponding tab to the url specified by link
function selectLink(){
var indexes = null;
ship("select-link", {}, {}, indexes.group, indexes.link);
}
我已经为此苦苦挣扎了一段时间。我只是不明白如何从页面上下文向我的应用程序发送事件。我需要添加监听器吗?我的,谢谢你的帮助。
【问题讨论】:
-
范围应该和页面一样。。在iframe中是偶然的吗?
-
不,没有 iframe 它的子元素到 body。
-
Hmm.. 您可以尝试在插入 dom 后从扩展中检查事件并从 javascript 本身绑定 onclick 事件。也请查看developer.chrome.com/extensions/messaging
-
是的,那就是连接到扩展的其余部分,我只想从注入的 html 访问内容脚本。从页面内部,我认为我无法访问 chome api。
-
Building a Chrome Extension - Inject code in a page using a Content script 的可能副本 - 这篇大型帖子几乎包含您需要了解的有关注入脚本的所有信息,包括通信。
标签: javascript html dom google-chrome-extension