gpt4 book ai didi

javascript - .gBrowser 未定义

转载 作者:行者123 更新时间:2023-11-28 08:46:09 27 4
gpt4 key购买 nike

我正在编写一个无需重新启动的 Firefox 扩展,我必须枚举所有打开的选项卡并使用它们。

这是引发错误的代码部分:

getInfoString : function ()
{
infos = "";
HELPER.alerting("url", "URL-Function");
var winMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
HELPER.alerting("url", "Mediator initialized");
var mrw = winMediator.getEnumerator(null);
while(mrw.hasMoreElements())
{
var win = mrw.getNext();
var t = win.gBrowser.browsers.length;
HELPER.alerting("url", "browsers: " + t);
for (var i = 0; i < t; i++)
{
var b = win.gBrowser.getBrowserAtIndex(i);
if(b.currentURI.spec.substr(0,3) != "http")
{
continue;
}
HELPER.alerting(b.title,b.currentURI.spec);
var doc = b.contentDocument;
var src = doc.documentElement.innerHTML;
infos = infos + src
HELPER.alerting("doc", src);
}
}

return infos;
}

我在测试时运行了一个 JavascriptDebugger-Addon,Firefox 执行一切正常

HELPER.alerting("url", "browsers: " + t);

但是在这行之后,调试器插件会抛出一个错误,指出:

win.gBrowser is undefined

...指向该行:

var t = win.gBrowser.browsers.length;

但在抛出错误之前,我收到了警报消息,它为我提供了正确的选项卡数量。因此,错误是在该行执行后抛出的,而不是在执行时直接抛出的。有谁知道如何解决这个问题,因为扩展在抛出错误后停止工作。

问候

附注:如果有人有更好的标题,请随意编辑。

最佳答案

使用winMediator.getEnumerator(null)将为您提供所有类型的窗口,可能是也可能不是浏览器窗口。您应该尝试更改以下行

var mrw = winMediator.getEnumerator(null);

var mrw = winMediator.getEnumerator('navigator:browser');

关于javascript - .gBrowser 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com