我创建了一个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的
答案 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)
你有没有搞清楚?请在此处查看此主题:Chrome extension is not loading on browser navigation at YouTube