当我使用FireFox(3.6.3)在页面上的各种文本框中键入文本时,出现以下错误:
错误:[Exception ...“组件返回失败代码:0x8000ffff(NS_ERROR_UNEXPECTED)[nsIPrefBranch.getBoolPref]”nsresult:“0x8000ffff(NS_ERROR_UNEXPECTED)”location:“JS frame :: file:/// C:/ Program %20Files / Mozilla%20Firefox / components / nsFormAutoComplete.js :: anonymous :: line 97“data:no] 源文件:file:/// C:/Program%20Files/Mozilla%20Firefox/components/nsFormAutoComplete.js 行:97
对于我开发的网页,甚至在Google搜索栏中输入文字,似乎都会发生。
当我查看nsFormAutoComplete.js时,我看到了:
init : function() {
// Preferences. Add observer so we get notified of changes.
this._prefBranch = Cc["@mozilla.org/preferences-service;1"].
getService(Ci.nsIPrefService).getBranch("browser.formfill.");
this._prefBranch.QueryInterface(Ci.nsIPrefBranch2);
this._prefBranch.addObserver("", this.observer, false);
this.observer._self = this;
this._debug = this._prefBranch.getBoolPref("debug");
this._enabled = this._prefBranch.getBoolPref("enable");
this._agedWeight = this._prefBranch.getIntPref("agedWeight");
this._bucketSize = this._prefBranch.getIntPref("bucketSize");
this._maxTimeGroupings = this._prefBranch.getIntPref("maxTimeGroupings");
this._timeGroupingSize = this._prefBranch.getIntPref("timeGroupingSize") * 1000 * 1000;
this._expireDays = this._getFormExpiryDays();
this._dbStmts = [];
this._observerService.addObserver(this.observer, "xpcom-shutdown", false);
},
问题似乎发生在这一行:
this._debug = this._prefBranch.getBoolPref("debug");
现在,我最好的猜测是FireFox读取其偏好的地方不存在偏好“debug”。
我对FireFox了解不多,在网上搜索并没有产生太多信息。
问题:FireFox在哪里存储/检索这些首选项?
我想如果我将“调试”首选项放入此位置,我应该消除错误。但是,我愿意接受其他建议/更多信息。
谢谢! --- ---丹
答案 0 :(得分:-1)
好。我想到了。也许这会帮助别人。在nsFormAutoComplete.js中,有一个首选项列表。
prefs.js文件是密钥,它位于C:\ Documents and Settings \\ application data \ firefox \ profiles \\ prefs.js。
您不想直接编辑此文件。而是在FireFox的地址栏中键入about:config并以这种方式添加首选项。偏好如下:
browser.formfill。并输入。
所以对于调试版,它是browswer.formfill.debug作为bool。我把它设置为假。之后,它在下一个偏好是.agedWeight时失败了。
添加nsFormAutoComplete.js中的所有首选项后,我发现错误消失了。