如何在使用document.write时忽略HTML标记

时间:2015-08-08 15:37:35

标签: javascript html

我有这行Javascript代码应该显示行

document.write(\" <textarea name=\"Text1\" cols=\"+col+\"rows=\"+row+\" id=\"textbox\" style=\"HelveticaNeue-Light\">\");

这是通过使用document.write完成的。所以它基本上是

document.write("document.write(\" <textarea name=\"Text1\" cols=\"+col+\"rows=\"+row+\" id=\"textbox\" style=\"HelveticaNeue-Light\">\");");

首先,我将上面的字符串传递给一个数组,然后在程序中使用document.write显示它。

问题在于,当显示它时,它实际上是一个文本框并显示它。我相信这种情况正在发生,因为HTML只是通过并检查标签,无论它们在引号中的位置等等。

我该如何解决这个问题?我只想显示实际的行,而不是行的输出。反正有没有这样做?我可以使用与document.write不同的内容吗?我可以将它输出到只显示它的文本框吗?那够了吗?

4 个答案:

答案 0 :(得分:1)

您需要转义标记。这些符号:Pkg-config <必须编码为> &lt;

您的示例应与此类似:

&gt;

答案 1 :(得分:1)

<改为&lt;而将>改为&gt;

试试这个:

document.write("document.write(\" &lt;textarea name='Text1' cols=\"+col+\" rows=\"+row+\" id='textbox' style='HelveticaNeue-Light'&gt;\");");

答案 2 :(得分:0)

您可以通过设置innerText

将字符串直接添加到元素中
var myDiv = document.getElementById('myDiv');
myDiv.innerText = '<p>These p tags will be displayed as text</p>';

答案 3 :(得分:0)

您对HTML进行HTML编码,就像这样

document.write("document.write(\" <textarea name=\"Text1\" cols=\"+col+\"rows=\"+row+\" id=\"textbox\" style=\"HelveticaNeue-Light\">\");".replace('<', '&lt;').replace('>', '&gt;'));