我使用此代码,但javascript未加载。
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
var prefix = this.is_current_https ? "https://" : "http://";
script.type = 'text/javascript';
script.onload = fnCustomHandler;
script.src = prefix + 'apis.google.com/js/plusone.js';
head.appendChild(script);
甚至没有收听script.onreadystatechange
正在产生任何输出。
当我调试console.log(script)
时,我看到正确创建了整个元素,但未加载引用的脚本。
我也试过head.appendChild(script.cloneNode(true));
备注
备注2
在@ john_doe
评论中发现,脚本代码被注入页面(进入html-> head),但未加载(如网络中所示)标签)。是什么导致这种情况?
答案 0 :(得分:2)
它说它加载了一个对象:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
var prefix = this.is_current_https ? "https://" : "http://";
script.type = 'text/javascript';
script.onload = function () {
alert('typeof window.gapi.plusone === ' + typeof window.gapi.plusone); // this
};
script.src = prefix + 'apis.google.com/js/plusone.js';
head.appendChild(script);
答案 1 :(得分:1)
我试过了,错误是fnCustomHandler
未完成,如果我把它的那条线完全加载。
编辑 - 我试过
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
var prefix = this.is_current_https ? "https://" : "http://";
script.type = 'text/javascript';
script.onload = function(){
alert('hi');
};
script.src = prefix + 'apis.google.com/js/plusone.js';
head.appendChild(script);
并且它可以正常运行,因此您的功能一定存在问题