我正在加载Google提供的第三方script
元素:
var h = document.getElementsByTagName('head')[0];
var xml = '<script defer="true" src="https://apis.google.com/js/api.js"></script>';
h.appendChild(document.importNode(new DOMParser().parseFromString(xml,'application/xml').childNodes[0],true));
没有一个浏览器(Waterfox,Chrome,IE11,IE15)抛出错误或警告,只是不向Google请求文件(网络请求中未显示任何内容)。我已经验证了所有这些浏览器中的错误报告功能均已启用/灵敏度最高。
此方案仅针对通过AJAX加载的内容,因此我不能不加载脚本以及其他所有内容。为什么脚本甚至不尝试请求?这既来自本地网站,又来自实时网站。
答案 0 :(得分:2)
仅创建脚本元素比进行所有XML解析简单
var h = document.getElementsByTagName('head')[0];
var scr = document.createElement('script')
scr.src = 'https://apis.google.com/js/api.js';
h.appendChild(scr);
scr.onload = () => console.log('Loaded')
答案 1 :(得分:0)
这是因为在您的JavaScript代码尝试向其中插入html时,很可能已经完成了加载操作。因此,一种解决方案是在开始加载之前以某种方式将标记添加到您的html中。