繁体   English   中英

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

[英]How to Ignore HTML Tags when Using document.write

我有这行应该显示该行的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东西吗? 我可以将其输出到仅显示它的文本框中吗? 够了吗?

您需要转义标签。 这些符号: < >必须编码为&lt; &gt;

您的示例应与此类似:

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

<替换为&lt; >通过&gt;

尝试这个 :

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

您可以通过设置它的innerText将字符串直接添加到元素:

var myDiv = document.getElementById('myDiv');
myDiv.innerText = '<p>These p tags will be displayed as text</p>';

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM