【发布时间】:2012-08-24 17:41:23
【问题描述】:
我正在努力构建我的第一个 Chrome 扩展程序。基本上我想要做的是,单击扩展图标,从当前页面中获取页面标题、URL 和选定内容,打开一个新窗口,然后将这些数据传递到这个新窗口中。
我已经完成了大部分工作,但是在窗口完全加载后我无法弄清楚如何执行代码。
Here is a gist with all of the files of the extension.
我想在加载窗口后执行 contentscript.js 和 insertdata.js 代码,并在页面上使用 jQuery(如果存在)。出于某种原因,即使我设置了一个间隔来不断检查 $ 是否是一个函数,它从来都不是。我想我不明白为什么我无法访问页面上可用的 JS 功能。
此外,所有这些代码似乎都有些复杂,所以我想知道是否有更好的方法来完成此操作。提前感谢您的帮助。
【问题讨论】:
-
在清单中的
content_scripts中使用"run_at": "document_end",没有帮助吗? developer.chrome.com/extensions/content_scripts.html 向下滚动到“run_at”了解更多信息。 -
默认情况下,内容脚本在
load事件发生前后/之后执行。话虽如此,您可以永远直接访问 jQuery 对象。详细解释见Chrome extension code vs Content scripts vs Injected scripts。 -
@RobW - 好吧,那回答了我的主要问题。谢谢!
-
@RobW - 好的,那么还有一个问题。如果我调整 contentscript.js 以将 jQuery 注入页面,为什么在执行 console.log 时 $ 仍然未定义?我看到它被注入到页面中:gist.github.com/1b0a6b0becc01869aab2
-
@TrevorDavis 因为
onload事件处理程序在内容脚本的上下文中运行。如果您只想使用 jQuery,只需include jQuery as a content script。
标签: javascript google-chrome-extension