我在扩展程序
中创建了一个页面工作者dup = pageWorker.Page({
contentScript: "self.port.on('alert', function(message) {"+
"console.log(message);"+
"document.querySelector('.test-element').title = message;"+
"});",
contentScriptWhen: "ready",
contentURL: "http://example.com/Licznik-beta/addon.html"
});
在“contentScript
”中,我可以与“document
”相关联。
但我无法与window
,函数或变量相关联。
console.log(window)
中的contentScript
返回"TypeError: cyclic object value timers.js:43"
。
我不明白它是如何运作的。 有人可以向我解释一下吗?
如何更改?
修改
我在测试中添加了几行:
self.port.on('addon-licznik', function () {
console.log(document);
console.log(window); // TypeError: cyclic object value timers.js:43
runFromAddon(); // ReferenceError: runFromAddon is not defined timers.js:43
});
功能:runFromAddon();
当然有。
第二次测试:
function funSet (tresc) {
var addonScript = document.querySelector(".addon-script");
if ( addonScript != undefined ) {
document.querySelector('head').removeChild( addonScript );
}
var script = document.createElement("script");
script.className = "addon-script";
script.textContent = tresc;
document.querySelector('head').appendChild(script);
}
function marmo (message) {
console.log(message);
funSet("console.log(window); runFromAddon();");
}
self.port.on('addon-licznik', marmo);
效果很好。
Window → http://example.com/Licznik-beta/addon.html
runFromAddon-Log
答案 0 :(得分:1)
如果您自己编写HTML,请使用addon
代替self
,并使用<script></script>
代替contentScript(File)
将脚本附加到页面。请参阅Scripting trusted page content。
如果您没有编写HTML,请参阅Communicating with Page Scripts。