追加脚本元素不请求Google API

时间:2018-08-04 15:30:02

标签: javascript google-api

我正在加载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加载的内容,因此我不能加载脚本以及其他所有内容。为什么脚本甚至不尝试请求?这既来自本地网站,又来自实时网站。

2 个答案:

答案 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中。