可能重复:
how to check the script element load event accross browser without jquery
我正在编写一个页面来为某人生成图表。我正在使用Google Charts API。
我想动态加载API。我在使用'google'全局对象时遇到问题。 如何检测是否已声明?如果是我自己的剧本,我想我可以使用回电。目前我有:
var addScript = function(src){
var head= document.getElementsByTagName('head')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= src;
head.appendChild(script);
}
var init = function (){
addScript('https://www.google.com/jsapi');
var waitForScript = setInterval(function(){
if(window['google']!==undefined){
window.clearInterval(waitForScript);
google.load('visualization', '1.0', {
'packages':['corechart']
});
}
},50);
}
非常感谢任何帮助!
答案 0 :(得分:1)
属性的存在将始终自动加载为true,因此只需执行以下操作:
if (window['google']) {
//do stuff
};
此外,在Opera中,您无法始终拥有head
标记。所以你做脚本附加如下:
var addScript = function(src){
var script= document.createElement('script');
script.type= 'text/javascript';
script.src= src;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
}