我正在使用最新的SDK开发Firefox Add。我遇到的问题是,当我尝试运行自定义dom功能时,它不起作用。
方案: firefox附加组件必须能够遍历所有选项卡,如果基于标题打开了正确的选项卡,请运行特定的功能,例如:mydom.checkIt();
<!DOCTYPE html>
<html>
<head>
<title>My Web</title>
</head>
<body>
<script>
mydom = {};
mydom.checkIt = function (){
alert('Hi');
};
</script>
</body>
</html>
然后,附加源代码将类似于:
var tabs = require('sdk/tabs');
for (let tab of tabs)
{
if(tab.title=='My Web')
{
tab.activate();
}
}
tabs.on('activate', function(tab) {
tab.attach({
contentScript: "if(typeof(mydom)!=='undefined')mydom.checkIt();else console.log('no defined');"
});
});
但这不起作用,它始终说:“没有定义”
有什么想法吗?
答案 0 :(得分:1)
你必须使用unsafeWindow或wrappedJSObject进入dom js范围。所以contentWindow.wrappedJSOBject.checkIt()从bootstrap插件开始工作(不确定sdk)
警告,这可能不是友好的,我们应该找到一种方法来支持