gpt4 book ai didi

Javascript:Firefox,为什么会出现此错误?

转载 作者:行者123 更新时间:2023-11-28 21:18:54 25 4
gpt4 key购买 nike

我正在尝试制作一个 Firefox 扩展,这是我非常简单的代码:

var SlashUnblocker_Button = {

//*************************************
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);

var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);

var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);

var urlbar = window.content.location.href;
prefManager.setCharPref("extensions.mf_unblocker.blocker_latest_url",urlbar);
prefManager.setCharPref("extensions.mf_unblocker.blocker_latest_url_title",document.title);

//*************************************

1: function () {
if(prefManager.getCharPref("extensions.mf_unblocker.blocker_user_email") != "a@a.com")
{

gBrowser.selectedTab = gBrowser.addTab("chrome://mf_unblocker/content/1_options.html");
}
else
{
gBrowser.selectedTab = gBrowser.addTab("chrome://mf_unblocker/content/0_register.html");
}
},

test: function () {alert("testing!");}

}


window.addEventListener("load", function (e)
{
SlashUnblocker_Button['test']();
}, false);

问题来了,看我用//*********标记的部分?
请参阅中间的代码。
如果我将该代码放在两个函数之上,它会引发错误...但如果我将它放在 function 1() 中,那么它就可以正常工作。问题是我需要从两个函数引用变量 prefManager

我做错了什么?

最佳答案

如果我没记错的话,您正在尝试将代码放入对象中。

您应该将其放入构建器中。

function SlashUnlockerButton(){

//*************************************
this.prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);

this.prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);

this.alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);

this.urlbar = window.content.location.href;
prefManager.setCharPref("extensions.mf_unblocker.blocker_latest_url",urlbar);
prefManager.setCharPref("extensions.mf_unblocker.blocker_latest_url_title",document.title);

//*************************************

this.1 = function () {
if(prefManager.getCharPref("extensions.mf_unblocker.blocker_user_email") != "a@a.com")
{

gBrowser.selectedTab = gBrowser.addTab("chrome://mf_unblocker/content/1_options.html");
}
else
{
gBrowser.selectedTab = gBrowser.addTab("chrome://mf_unblocker/content/0_register.html");
}
};

this.test = function () {alert("testing!");};
}

var SlashUnblocker_Button = new SlashUnlockerButton();
//...

我还没有测试过,但这就是想法。

http://www.w3schools.com/js/js_objects.asp

关于Javascript:Firefox,为什么会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899408/

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