Я ищу ошибку в расширении FireFox. Я наконец-то смог увидеть это сам (раньше у меня были только отчеты), и я не могу понять, как это возможно.
Одно сообщение об ошибке от моего расширения в консоли ошибок: «gBrowser не определен». Это само по себе было бы достаточно удивительно, так как оверлей перекрывает browser.xul и navigator.xul, и я ожидаю, что gBrowser
будет доступен из обоих. Еще хуже фактическое место, где это происходит: строка 101 из nextplease.js . То есть внутри функции isTopLevelDocument
, которая вызывается только из onContentLoaded
, которая вызывается только из onLoad
здесь:
gBrowser.addEventListener(this.loadType, function (event) {
nextplease.loadListener.onContentLoaded(event);
},
true);
То есть gBrowser
определено в onLoad
, но как-то не определено в isTopLevelDocument
.
Когда я попытался на самом деле использовать расширение, я получил еще одну ошибку: «nextplease не определен». Интересно, что это произошло в строках 853 и 857. То есть внутри функций
nextplease.getNextLink = function () {
nextplease.getLink(window.content, nextplease.NextPhrasesMap, nextplease.NextImagesMap, nextplease.isNextRegExp, nextplease.NEXT_SEARCH_TYPE);
}
nextplease.getPrevLink = function () {
nextplease.getLink(window.content, nextplease.PrevPhrasesMap, nextplease.PrevImagesMap, nextplease.isPrevRegExp, nextplease.PREV_SEARCH_TYPE);
}
Так что nextplease
так или иначе определено достаточно для вызова этих функций, но не определено внутри них.
Наконец, выполнение typeof(nextplease)
в Execute JS возвращает «объект». То же самое для gBrowser
.
Как это может произойти? Есть идеи?