Ada*_*ath 9 javascript firefox-addon firefox-addon-sdk
我正在尝试使用addon-sdk将Chrome插件移植到Firefox,但我无法找到等效的方法来收听标签导航事件.
我需要做的是保持每页数据(从DOM检测到),并在用户导航到选项卡中的新页面时立即删除(但是,在刷新时保持数据)
我Chrome,当标签更改网址时执行某些操作,我可以使用:
chrome.tabs.onUpdated.addListener(function(tab_id, changeInfo, tab) {
if(changeInfo.status == 'loading' && changeInfo.url) {
//DO STUFF AS THE URL CHANGED
}
});
Run Code Online (Sandbox Code Playgroud)
在使用addon-sdk的Firefox中我试过使用:
tabs.on('open', function(tab){
tab.on('ready', function(tab){
if(tab.cachedURL != tab.url) {
//DO STUFF AND SET CACHE
}
});
});
Run Code Online (Sandbox Code Playgroud)
问题是我无法挂钩初始导航事件,因此在用户开始导航和准备好新页面的DOM之间,旧数据可用.
基本上我需要一种方法来勾选选项卡的初始导航,理想情况下看看它的位置(就像我在Chrome中一样).
有什么想法吗?
Ben*_*ris 11
目前无法通过选项卡检测页面加载.但是,你可以使用page-mods中的start事件来完成它.我也有兴趣以正确的方式做到这一点,所以如果你找到一种不使用page-mods的方法,请点击我:
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*", // All DOM windows (ie. all pages + all iframes).
contentScriptWhen: "start", // page starts loading, at this point you have
// the head of the document and no more
contentScript: "", // inject no script, you can even omit this
onAttach: function onAttach(worker) {
if (worker.tab.url == worker.url) // test if at top level
doStuff(worker.tab.url);
// cleanup the attached worker
worker.destroy();
}
}
);
Run Code Online (Sandbox Code Playgroud)
另外,我不知道onAttach触发器的速度,就像在ff扩展中传递的所有消息一样,它可能会增加一些时间(可能是150毫秒?如果您对此有基准,请回复我)
| 归档时间: |
|
| 查看次数: |
2642 次 |
| 最近记录: |