HTML字符串需要由JavaScript创建

时间:2012-01-17 15:29:24

标签: javascript html encoding escaping

我需要通过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以上的代码,而不是让它看起来像?

&lt;script type=&quot;text&frasl;javascript&quot;&gt;&lt;&#33;等。

我问,因为使用上述实体转义片段会导致插入“ghost script”,例如<!--突然出现在我没说过的地方。

除此之外,这可能是我发现的浏览器错误。可在Firefox 9 for Windows和Opera 11 for Linux上重现。

2 个答案:

答案 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/