2

我正在开发一个 firefox 扩展,我需要包含 Google Search API。但我在 google.load('search','1') 行中遇到错误。谁能告诉问题是什么

谢谢。

4

2 回答 2

2

我有同样的问题,但根据我在 Google 的 JS 代码中看到的内容,它尝试将变量 'google' 添加到window,但是在还没有窗口时加载了扩展!所以不会有全局google变量,因此当您尝试触发 google.load() 时会发生错误。我认为解决方案是动态加载脚本。我刚刚找到了一个现有的音译插件:

https://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 事件发生时加载的,所以当页面的整个树被加载时(看起来它是一个相当于 onLoad 的 DOM)

(请原谅我在链接中插入空格,否则我将不被允许发布它们:])

于 2009-05-27T13:00:43.080 回答
0

如果您已经收集了所有 JavaScript 文件并将它们与您的 Firefox 扩展程序打包在本地,并且 google 的加载功能是为从服务器加载 JavaScript 而设计的,那么您的问题是您不能使用该库中的加载机制。而是使用 Components.utils.import 或 mozIJSSubScriptLoader,具体取决于您所针对的 Firefox 版本。

这可能需要编辑、扩展或覆盖 Google 库中的代码。

于 2009-04-15T06:43:05.533 回答