2012-01-17 57 views
1

我需要通過innerHTML將以下代碼附加到HTML文本字段。需要通過JavaScript創建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;

我這麼問是因爲逃避與上述實體結果的片段在「幽靈腳本」被插入例如<!--突然出現在我沒有放置的地方。

此外,這可能是我發現的瀏覽器錯誤。適用於Windows的Firefox 9和適用於Linux的Opera 11可重複使用。

+0

順便說一句,我不認爲這是一個錯誤,而這是一個特點: ) – 2012-01-17 15:47:04

+0

也許我錯過了一些東西,但HTML表單輸入的類型「文本」不能有任何子節點(文本或元素,afaik)和形式「textarea」輸入元素按原樣顯示其內容,所以沒有必要逃避/編碼文本。 – maerics 2012-01-17 15:48:11

+0

Aside:使用評論hack轉義Javascript仍然有必要嗎?任何瀏覽器仍在使用中,如果沒有它,將無法處理腳本塊? – millimoose 2012-01-17 15:54:21

回答

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/

相關問題