我有以下的js。这也在this fiddle
(function () {
var test = document.createElement('script');
test.type = 'text/javascript';
test.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.example.com/test.js';
console.log(test);
document.getElementsByTagName('body')[0].insertAdjacentHTML("beforeEnd", test);
})();
我想在关闭js标签之前将js放在页面底部。
当我在console.log中查看它时,我得到了预期的结果。 这是
<script type="text/javascript" src="http://www.example.com/test.js"></script>
然而,当我尝试将其实际添加到我的页面时,我得到[object HTMLScriptElement]
我在这里缺少什么,或者有其他方法可以尝试实现这个目标吗?
答案 0 :(得分:4)
insertAdjacentHTML
将html作为其参数而不是dom节点。我会改用appendChild
document.getElementsByTagName('body')[0].appendChild(test);
答案 1 :(得分:2)
我采用了稍微不同的方法,并尝试将脚本作为body节点的子节点附加。以下是使用您的代码的示例:
(function (document) {
var test = document.createElement('script');
test.type = 'text/javascript';
test.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.example.com/test.js';
document.getElementsByTagName('body')[0].appendChild(test);
})(document);
似乎得到了理想的结果。
希望这有帮助!
答案 2 :(得分:1)
我认为'beforeend'需要全部小写。
[...]
document.getElementsByTagName('body')[0].insertAdjacentHTML("beforeend", test);
https://developer.mozilla.org/en-US/docs/Web/API/element.insertAdjacentHTML
在上面查看Musa的答案,在这种情况下这是正确的插入方法。