【发布时间】:2017-05-30 07:34:59
【问题描述】:
此 JavaScript 语句在 5 个月前在以前的 Chrome 版本中有效(作为 Chrome 扩展 content.js 的一部分):
require(["function-widget-1:share/util/service/createLinkShare.js"]).prototype.makePrivatePassword=function(){return prompt("Some Massage:","")};
但现在(在最新的 Chrome 中,作为 Chrome 扩展 content.js 的一部分)它是无效的,并且错误消息是“未捕获的 ReferenceError:未定义要求”。
但是,如果我在 Chrome 控制台(如在开发人员工具中)键入相同的语句,它现在(在最新的 Chrome 中)仍然有效。
所以我的问题是: 这两种情况有何不同?
【问题讨论】:
-
require不是我的 Chrome 中已定义的函数...您确定您自己没有在某处包含require实现吗? -
@deceze 我相信它包含在扩展程序应该工作的页面中
-
控制台有一个上下文选择器。默认情况下,它是页面本身。为了让您的扩展程序能够访问页面上下文,您需要在脚本元素中注入代码,否则内容脚本无法访问页面功能,因为它在隔离环境中运行。
-
@wOxxOm 谢谢,但我想我确实通过包含 . manifest.json文件/内容js部分中的js文件
-
注入内容脚本和在脚本元素中注入代码有很大的不同。
标签: javascript google-chrome google-chrome-extension