我正在尝试替换Javascript中的document.write()函数。不完全确定该如何做,因为我不知道要将HTML写到哪个元素。
目前,代码javascript代码被插入到我的页面中,使用:
<script src="//example.com/file.js" type="text/javascript"></script>该文件包含一个document.write()函数:
document.write('<h2>Testing HTML</h2>Hello');但是,由于不能异步调用document.write(),我需要找到另一个解决方案。我不能使用getElementsById()或类似的东西,因为我根本不知道目标网站上的任何元素。
我希望HTML代码准确地插入到脚本标记所在的位置上。
有什么建议吗?
发布于 2015-08-18 13:21:46
试试这个:
<script src="//example.com/file.js" type="text/javascript" id="myScript"></script>在javascript中:
var script = document.getElementById('myScript');
script.outerHTML += '<h2>Testing HTML</h2>Hello';由于您没有脚本ID,请尝试如下:
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];
// Async
setTimeout(function() {
script.outerHTML += '<h2>Testing HTML</h2>Hello';
}, 2000);发布于 2015-08-18 13:25:23
首先,您需要创建一个元素来将HTML添加到其中,如果您已经在变量中使用了HTML,那么很好,请使用它而不是下面的yourElement。
// Create an element, add HTML to it
var yourElement = document.createElement ('div');
yourElement.innerHTML = '<div>Test</div>';然后,您将得到当前的JavaScript标记..。
// Get the current script tag (meaning yours)
var scripts = document.getElementsByTagName ('script');
var thisScript = scripts[scripts.length - 1]然后在这个标签前插入HTML元素..。
// Insert your element before current script tag
thisScript.parentNode.insertBefore (yourElement, thisScript);您还可以在JavaScript标记之后插入HTML元素。
信用:这段代码的灵感来源于HashOver:http://tildehash.com/hashover/hashover.js
https://stackoverflow.com/questions/32073407
复制相似问题