0

検索エンジンを保護するための単純な Firefox アドオンを作成したいと考えています。これは、Firefox を再起動するたびに searchengine と keyword.URL が u-search に設定されるためです。

アドオン BrowserProtect を試しましたが、keyword.URL を保護しません! そこで、builder.addons.mozilla.org でアドオンを作成することから始めました。これは使いやすいと思われるためです。

私のコードは次のようになります(コードスニペットから一緒に追加されます):

var Widget = require("widget").Widget;
var tabs = require('tabs');

exports.main = function() {

    new Widget({
        id: "searchengineprotect",
        label: "SearchEngineProtect",
        contentURL: "http://www.mozilla.org/favicon.ico",

        onClick: function(event) {
            var {Cc, Ci} = require("chrome");
            var prefs = Cc["@mozilla.org/cookieService;1"].getService(Ci.nsIPrefBranch);
            prefs.setCharPref("keyworld.URL", "http://google.de/search?q=");
        }
    });
};

「onClick」関数のコードを変更しました。

しかし、Firefox の小さなボタンをクリックすると、コンソールに次のエラーが報告されます。

Fehler: searchengineprotect: An exception occurred.
NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
undefined 35
Traceback (most recent call last):
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/searchengineprotect/lib/main.js", line 35, in exports.main/<.onClick
    var prefs = Cc["@mozilla.org/cookieService;1"].getService(Ci.nsIPrefBranch);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/deprecated/events.js", line 153, in _emitOnObject
    listener.apply(targetObj, params);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/deprecated/events.js", line 123, in _emit
    return this._emitOnObject.apply(this, args);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/widget.js", line 282, in _onEvent
    this._emit(type, eventData);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/widget.js", line 431, in WidgetView__onEvent
    this._baseWidget._onEvent(type, this._public);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/widget.js", line 850, in WC_addEventHandlers/listener/<
    self._widget._onEvent(EVENTS[e.type], null, self.node);
  File "resource://jid0-zg1n2skgq7y6lrq6hbl96hno8ke-at-jetpack/addon-sdk/lib/sdk/timers.js", line 31, in notify
    callback.apply(null, args);

それで、そのエラーを修正する方法、またはFirefoxが検索エンジンを変更するのを止める方法さえ知っていれば...素晴らしいでしょう! :)

4

1 に答える 1

1

Following the comment - it's a misspelling issue.
Use keyword.URL instead of keyworld.URL (without the "L")

于 2013-09-09T08:04:16.360 に答える