我想打印或回顯代碼給用戶,但是當我嘗試出現ILLEGAL錯誤時。我怎麼會去呈現以下代碼只是正常的文本,而不是執行它:將用戶代碼打印回用戶
alert('<script>hello</script>');
我一直在試圖將它打印到使用jQuery的文本框,當我得到的錯誤,就像這樣:
$('.printed-code').val('<script> write your code between these lines </script>');
我想打印或回顯代碼給用戶,但是當我嘗試出現ILLEGAL錯誤時。我怎麼會去呈現以下代碼只是正常的文本,而不是執行它:將用戶代碼打印回用戶
alert('<script>hello</script>');
我一直在試圖將它打印到使用jQuery的文本框,當我得到的錯誤,就像這樣:
$('.printed-code').val('<script> write your code between these lines </script>');
如果你把你的JavaScript在<script>
元素,然後將字符串字面量在</script>
將被確認爲腳本匹配的結束標記。分手轉義序列的字符串(在一個JS字符串文字,\/
的含義一樣/
):
$('.printed-code').val('<script> write your code between these lines <\/script>');
...或保持腳本在外部文件中,並與<script src="foo.js"></script>
引用它。
如果你想顯示信息給用戶,那麼你不應該使用<input>
這樣做,所以你會希望在text()
方法,而不是val()
方法。 (假設.printed-code
匹配<code>
元素或適合當前任務的其他內容)。
$('code.printed-code').text('<script> write your code between these lines </script>');
偉大的答案,正是我一直在尋找的! '('<\script>在這兩行之間寫下你的代碼<\/script>');' – EHerman
你應該逃避/
這樣的:<\/script>
。否則,你會得到錯誤,特別是在舊的瀏覽器</
結束腳本塊(而不是</script>
)
有人回答了一個確切的代碼示例,幷包括一個jsfiddle。他由於某種原因刪除了該帖子,但這是他提供的代碼。我會將其標記爲正確的。謝謝大家的輸入
$('.printed-code').val('<scr'+'ipt> write your code between these lines </scr'+'ipt>');
不要那樣做。分解開始標記是不必要的,並且使用字符串連接來分解結束標記,這樣做是混亂和低效的。 – Quentin
爲什麼在第一個地方包含'
http://jsfiddle.net/WgxrW/1 –
只是出於好奇:你爲什麼需要這個?這似乎是一件尷尬的事情要做。如果是用於調試,有更好的方法:)我不明白爲什麼真的有必要顯示腳本標籤(它們導致問題)。如果它是您想要顯示的代碼塊,請使用'pre'標籤並顯示代碼。 – nathanvda
我正在寫一個WordPress插件,用戶可以選擇選項和輸入東西,然後生成一組代碼,然後可以在主題和模板中使用 – EHerman