[英]how to: dynamically load google ajax api into chrome extension content script
我正在尝试在chorme扩展程序的“内容脚本”中使用Google的ajax api。 在常规的html页面上,我会这样做:
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("language", "1");
</script>
但是由于我试图从js代码动态加载翻译库,所以我尝试了:
script = document.createElement("script");
script.src = "http://www.google.com/jsapi";
script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);
google.load('language','1')
但最后一行抛出以下错误:
Uncaught TypeError: Object #<an Object> has no method 'load'
有趣的是,当我在chrome的js控制台中输入相同的“ google.load('language','1')
”时,它会按预期工作...
我也尝试过使用jquery的.getScript()
但是仍然存在相同的问题...
是否有人知道可能是什么问题以及如何解决?
提前谢谢了!
我有这样的工作:
<script type="text/javascript">
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://www.google.com/jsapi';
headID.appendChild(newScript);
</script>
<script type="text/javascript">
google.load("language", "1");
</script>
它没有返回任何错误。
内容脚本只能访问其自身或其他内容脚本的功能。 由于您将google api加载程序添加到文档的脚本中,因此无法从内容脚本中调用它。 :)
如果您需要将api加载到文档的脚本中,可以通过指定autoload参数来完成:“ https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22language%22%2C%22version%22%3A%221%22%7D%5D%7D
“
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.