代码之家  ›  专栏  ›  技术社区  ›  John

追加脚本元素不请求Google API

  •  1
  • John  · 技术社区  · 6 年前

    我在装第三方 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));
    

    没有一个浏览器(waterbox、Chrome、IE11、IE15)会抛出错误或警告,它们只是 从Google请求文件(网络请求中不显示任何内容)。我已经验证了错误报告在所有浏览器中启用/最大化敏感度。

    这个场景是在只通过AJAX加载的内容上,所以我可以 将脚本与其他所有内容一起加载。为什么脚本甚至没有尝试请求?这是从本地主机和现场网站。

    2 回复  |  直到 6 年前
        1
  •  2
  •   charlietfl    6 年前

    创建一个脚本元素比完成所有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')
        2
  •  0
  •   Nurbol Alpysbayev    6 年前

    这是因为当javascript代码尝试向其插入html时,您的头很可能已经完成加载。因此,一个解决方案是在开始加载html之前以某种方式将标记添加到html中。