可能重复:
How can JavaScript make new page that contains more JavaScript?
我尝试写这个:document.write('<script>document.write("test")</script>');
并显示'); });//]]>
我相信这是因为我在其中写了<script> </script>
,为什么会这样,我能做些什么(我故意想要它被<script>
包围?
感谢。
答案 0 :(得分:3)
你要么把它放在一个外部文件中(脚本属于哪里),要么做丑陋的“逃避”事情:
document.write('<script>document.write("test")</scr' + 'ipt>');
或
document.write('<script>document.write("test")<\/script>');
但实际上,请把它放在外部文件中。
答案 1 :(得分:1)
序列</script>
...结束脚本元素。如果你在字符串的中间执行此操作,那么最终会出现JS语法错误。
在JS字符串中,\/
表示与/
相同,因此请转义斜杠字符以避免在标记中包含结束标记。
document.write('<script>document.write("test")<\/script>');
答案 2 :(得分:0)
这是因为浏览器会看到</script>
部分并认为它是您脚本的结束标记。
要克服这一点,只需将它分成两个字符串,如
'<script>document.write("test")</scr'+'ipt>'
答案 3 :(得分:0)
当浏览器运行您的脚本并遇到</script>
时,它会认为您的脚本已经结束。我会将字符串拆分为两个单独的字符串连接在一起。或者您可以将脚本放在外部文件中,而不是完全遇到问题。第二个可能是一个额外的工作,如果你做一个小事情,但它确实使它,所以你不必写任何额外或连接。