2009-04-15 127 views
2

我开发Firefox扩展,我需要包括谷歌搜索API。但我在google.load('search','1')行遇到错误。谁能告诉是什么问题谷歌搜索API的Firefox扩展

感谢。

回答

0

如果你已经收集了所有的JavaScript文件,并与您的Firefox扩展本地包装他们,谷歌的加载功能是专为从服务器加载JavaScript那么你的问题是,你不能在使用负载机制图书馆。取决于您定位的Firefox版本,请使用Components.utils.import或mozIJSSubScriptLoader。

这可能需要修改,延长或覆盖在谷歌的库中的代码。

2

我有同样的问题,但根据我在Google的JS代码中可以看到的内容,它会尝试将变量'google'添加到窗口,但是扩展程序在没有窗口时加载!因此,将不会有全局变量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'); 

}当DOMContentLoaded事件occures

的onPageLoad被加载,所以当首页的整个树被加载(现在看来,这是一个DOM相当于onLoad)实现

(请原谅我在插入链接的空间,但否则我不会被允许张贴:])