Firefox-Addon: как переписать функцию пользовательского интерфейса? - PullRequest
0 голосов
/ 15 сентября 2010

На самом деле я хотел бы изменить replaceWord функции проверки орфографии .

Я пытался (в моем собственном расширении Firefox) onInit :

original_replaceWord = InlineSpellCheckerUI.replaceWord;

InlineSpellCheckerUI.replaceWord = function()
{
    // things i would like to do (i.e. set the Cursor to another spot in the editor) 

    // call of the original function
    return original_replaceWord.apply(this, arguments);
};

Но, похоже, это не сработало, потому что эта функция не была вызвана, когда я заменил слово с ошибкой.

Как мне найти нужную функцию?Какой из них мне нужно перезаписать?

спасибо за любые предложения

1 Ответ

1 голос
/ 15 сентября 2010

Попробуйте это : (это неправильно. См. Обновление ниже)

original_replaceWord = InlineSpellCheckerUI.replaceWord;

InlineSpellCheckerUI.prototype.replaceWord = function()
{
    // things i would like to do (i.e. set the Cursor to another spot in the editor) 

    // call of the original function
    return original_replaceWord.apply(this, arguments);
};

UPDATE

InlineSpellCheckerUI не имеет функции replaceWord. Функция replaceWord определена в интерфейсе nsIInlineSpellChecker, который реализуется классом mozInlineSpellChecker в C ++.

Таким образом, вы не можете переопределить функцию replaceWord. Однако вы можете попробовать переопределить функцию replaceMisspelling в InlineSpellCheckerUI, используя приведенный ниже код. Я думаю, что это должно служить вашей цели.

let original_replaceMisspelling = InlineSpellCheckerUI.replaceMisspelling;

InlineSpellCheckerUI.replaceMisspelling = function()
{
    // things i would like to do (i.e. set the Cursor to another spot in the editor) 

    // call of the original function
    return original_replaceMisspelling.apply(this, arguments);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...