我发现的一切似乎都涉及注入jQuery,但我知道jQuery已经存在于页面上(浏览器JS控制台允许我使用它)。
我有一个后台脚本,它正在向我的内容脚本发送一条消息,该脚本正在运行该函数。当该函数执行时,我得到:
runtime.onMessage的事件处理程序出错:ReferenceError:jQuery 未定义
(我已尝试过$和jQuery引用)
为什么我无法从内容脚本访问现有的jquery对象?
答案 0 :(得分:2)
这是因为不允许按设计设计内容脚本来访问页面
定义的变量/函数https://developer.chrome.com/extensions/content_scripts
但是,内容脚本有一些限制。他们不能:
- 使用chrome。* API,但以下情况除外:
- 扩展名(getURL,inIncognitoContext,lastError,onRequest,sendRequest)
- I18N
- 运行时(connect,getManifest,getURL,id,onConnect,onMessage,sendMessage)
- 存储
- 使用其扩展程序页面定义的变量或函数
- 使用由网页或其他内容脚本定义的变量或函数
因此,如果您希望使用某个库,您的扩展程序必须将其注入