2012-08-17 65 views
1

我试图建立LinkedIn的插件,但contentscript在每一帧输出...火狐插件忽略I帧

我main.js元素我可以,如果其顶部框架做一个动作

if(window.frameElement === null){ alert("YEAH this is the right place!); } 

但我的内容srcipt是​​复杂的,并使用jQuery和这个脚本仍然把剧本中的每一帧...

+1

此插件SDK不顶层文件和框架区别开来。所以它可能是你的方法,也可能是框架的URL不同,你可以在你的'include'参数中过滤出它们。 – 2012-08-17 10:36:45

回答

3

UPDATE,SDK的页面-MOD API现在支持 'attachTo',这样你就可以做到这一点,而不是:

var data = require("sdk/self").data; 
var page = require('sdk/page-mod'); 

page.PageMod({ 
    match:['*'], 
    contentScriptOptions: {}, 
    contentScriptFile: [data.url('myScript.js')], 
    attachTo: 'top', 
    onAttach: function(worker) { 
     //set up hooks or other background behavior 
    }, 
}); 

this more recent question for more info

有两种方法你可以看看:

1.请用标签模块内容的脚本。这是有效的,因为选项卡模块只处理顶级文档。下面是一个简单的例子:

https://builder.addons.mozilla.org/package/22176/latest/

2.通过页面-MOD做一个非常小的内容脚本的初始负载,然后如果拖到绘图页是你真正想要去国防部,注入脚本的东西通过port.emit消息发送它们。有一个从附加的dotjs这种方案的一个例子:

https://github.com/rlr/dotjs-addon