【发布时间】:2009-04-15 06:27:11
【问题描述】:
我正在开发一个 Firefox 扩展,我需要包含 Google 搜索 API。但我在 google.load('search','1') 行中遇到错误。谁能告诉我是什么问题
谢谢。
【问题讨论】:
标签: javascript import firefox-addon
我正在开发一个 Firefox 扩展,我需要包含 Google 搜索 API。但我在 google.load('search','1') 行中遇到错误。谁能告诉我是什么问题
谢谢。
【问题讨论】:
标签: javascript import firefox-addon
我也有同样的问题,但是根据我在 Google 的 JS 代码中看到的,它尝试将变量 'google' 添加到 window,但是在还没有窗口时加载了扩展!因此不会有全局 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 事件发生时加载的,所以当页面的整个树被加载时(看起来它是一个相当于 onLoad 的 DOM)
(请原谅我在链接中插入空格,否则我将不被允许发布它们:])
【讨论】:
如果您已经收集了所有 JavaScript 文件并将它们与您的 Firefox 扩展程序一起打包到本地,并且 google 的加载功能是为从服务器加载 JavaScript 而设计的,那么您的问题是您无法使用该库中的加载机制.而是使用 Components.utils.import 或 mozIJSSubScriptLoader,具体取决于您所针对的 Firefox 版本。
这可能需要编辑、扩展或覆盖 Google 库中的代码。
【讨论】: