我需要通过innerHTML
将以下代码附加到HTML文本字段。
<script type="text⁄javascript"><!--
my_client = "test/test2/456789";
my_num = "gjhklasd";
my_width = 728;
my_height = 90;
my_page_url = "${SOMEURL}";
//-->
</script>
是否有替代方法可以转义JavaScript以上的代码,而不是让它看起来像?
<script type="text⁄javascript"><!
等。
我问,因为使用上述实体转义片段会导致插入“ghost script”,例如<!--
突然出现在我没说过的地方。
除此之外,这可能是我发现的浏览器错误。可在Firefox 9 for Windows和Opera 11 for Linux上重现。
答案 0 :(得分:1)
如果您正在接收HTML作为参数,或者只是想让代码中的字符串看起来更好:我只是在它上面使用某种编码器。 这似乎是一个:http://www.strictly-software.com/scripts/downloads/encoder.js
答案 1 :(得分:1)
您可以尝试使用应自动处理转义的innerText
属性。您只需要避免在JavaScript块中的字符串文字中使用序列</script>
。 (在one of the related questions中有一个解释。)你可以解决这个问题,例如打破标签:
var t = '<script type="text/javascript"><!--\n\
abc\n\
--></script'+'>';
elmt.innerText = t;
jsFiddle:http://jsfiddle.net/pB24u/2/