替换document.write()

时间:2015-08-18 13:10:11

标签: javascript html

我正在尝试替换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代码完全插入脚本标记的位置。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

试试这个:

textArea.append(sCurrentLine + System.getProperty("line.separator"));

在javascript中:

<script src="//example.com/file.js" type="text/javascript" id="myScript"></script>

由于您没有脚本ID,请尝试以下操作:

var script = document.getElementById('myScript');
script.outerHTML += '<h2>Testing HTML</h2>Hello';

答案 1 :(得分:0)

首先,您需要创建一个元素来添加您的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:tildehash.com/hashover/hashover.js