Google Search API внутри расширения Firefox - PullRequest
2 голосов
/ 15 апреля 2009

Я разрабатываю расширение для Firefox, и мне нужно включить Google Search API. Но я столкнулся с ошибкой в ​​строке google.load ('search', '1'). Может кто-нибудь сказать, в чем проблема

Спасибо.

Ответы [ 2 ]

2 голосов
/ 27 мая 2009

У меня та же проблема, но согласно тому, что я вижу в JS-коде Google, он пытается добавить переменную 'google' в окно , но расширение загружается, когда еще нет окна! Таким образом, глобальной переменной google не будет, поэтому при попытке запуска google.load () возникает ошибка. Я думаю, что решение состоит в том, чтобы загрузить скрипт динамически. Я только что нашел существующее дополнение для транслитерации:

h t t p s: / / addons.mozilla.org/pl/firefox/addon/8960

Посмотрите, как они решили проблему:

onPageLoad: function(event) {
var doc = event.originalTarget;
var ele = doc.createElement('script');
ele.setAttribute('type', 'text/javascript');
ele.setAttribute('src', 'h t t p : / / www.google.com/jsapi?key=internal');

}

onPageLoad загружается, когда происходит событие DOMContentLoaded, поэтому, когда загружается все дерево страницы (кажется, что это DOM, эквивалентный onLoad)

(Извините, я вставляю пробелы в ссылки, но в противном случае я не смог бы публиковать их:])

0 голосов
/ 15 апреля 2009

Если вы собрали все файлы JavaScript и локально упаковали их с расширением Firefox, а функция загрузки Google была разработана для загрузки JavaScript с сервера, то ваша проблема в том, что вы не можете использовать механизм загрузки в этой библиотеке , Вместо этого используйте Components.utils.import или mozIJSSubScriptLoader в зависимости от целевой версии Firefox.

Для этого может потребоваться редактирование, расширение или перезапись кода в библиотеке Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...