Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML字符串需要通过JavaScript创建_Javascript_Html_Encoding_Escaping - Fatal编程技术网

HTML字符串需要通过JavaScript创建

HTML字符串需要通过JavaScript创建,javascript,html,encoding,escaping,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看起来像其他代码外,还有其他方法可以替

我需要通过
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看起来像其他代码外,还有其他方法可以替代上述代码吗

scripttype=“text&frasl;javascript”和#33


我这样问是因为用上述实体转义代码段会导致插入“鬼脚本”,例如,如果您将HTML作为参数接收,或者只是想让带有该脚本的字符串在代码中看起来更好:我只想在它上面使用某种编码器。
这里似乎有一个:

您可以尝试使用
innerText
属性,该属性应该自动处理转义。您只需避免在JavaScript块中使用字符串文本中的序列
。(中有一个解释。)您可以解决这个问题,例如,分解标签:

var t = '<script type="text/javascript"><!--\n\
    abc\n\
        --></script'+'>';
elmt.innerText = t; 
var t='';
elmt.innerText=t;

jsFiddle:

顺便说一句,我不认为这是一个bug,而是一个特性:)也许我遗漏了一些东西,但是类型为“text”的HTML表单输入不能有任何子节点(text或elements,afaik),表单“textarea”输入元素按原样显示其内容,因此没有必要对文本进行转义/编码。旁白:使用注释黑客转义Javascript是否仍然有必要?是否有任何浏览器仍在使用,如果没有脚本块,它们将无法处理脚本块?