Firefox扩展onload

时间:2014-02-23 16:41:05

标签: javascript youtube firefox-addon firefox-addon-sdk

我创建了一个Firefox附加组件,重点是Youtube内置于侧面并添加了一个额外的按钮。 关键角色就足以重定向到youtube链接的另一个页面。

问题是,当更改YouTube视频网址时,网址没有变化,但仍然高于标题更改,但不是按钮。 但是,当我更新页面时,您可以正确更新(F5)。

我的意思是在Youtube上导航期间没有更新供应。

以下是邀请执行文件 main.js 的文件内容:

var pageMod = require("page-mod");
var self = require("self");
pageMod.PageMod({
  include: "*.youtube.com",
  contentScriptFile: self.data.url("youtube.js")
});

我的问题是,应该如何更改,以便在Youtube导航过程中更新配件?

提前致谢!

最诚挚的问候 Davee的

3 个答案:

答案 0 :(得分:1)

我复制的代码目前看起来像这样,但不幸的是,如果代码片段不起作用。

这么认为?

<强> main.js:

var pageMod = require("page-mod");
var self = require("self");
pageMod.PageMod({
  include: "*.youtube.com",
  contentScriptFile: self.data.url("youtube.js")
});

var progListener = {
    onLocationChange: function (aProgress, aRequest, aURI, aFlags) {
        Cu.reportError('location changed!');
        if (aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT) {
            Cu.reportError('anchor clicked!');
        } else {
            return
        }
        var domWin = aProgress.DOMWindow;
        var domDoc = domWin.document;
        if(!domDoc) {
            Cu.reportError('document not loaded yet');
            return;
        }
    }
}

Services.wm.getMostRecentWindow('navigator:browser').gBrowser.addProgressListener(progListener);

答案 1 :(得分:0)

你必须使用onLocationChange

var progListener = {
    onLocationChange: function (aProgress, aRequest, aURI, aFlags) {
        Cu.reportError('location changed!');
        if (aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT) {
            Cu.reportError('anchor clicked!');
        } else {
            return
        }
        var domWin = aProgress.DOMWindow;
        var domDoc = domWin.document;
        if(!domDoc) {
            Cu.reportError('document not loaded yet');
            return;
        }
    }
}

browserDOMWindow.gBrowser.addProgressListener(progListener);

答案 2 :(得分:0)

嘿@Davee我想我想出来了。实际上youtube正在使用pushtate的东西。

你有没有搞清楚?请在此处查看此主题:Chrome extension is not loading on browser navigation at YouTube