0

我想向用户打印或回显代码,但是当我尝试这样做时,我得到一个非法错误。我将如何将以下代码显示为普通文本而不是执行它:

alert('<script>hello</script>');

当我收到错误时,我一直在尝试使用 jQuery 将其打印到文本框中,如下所示:

$('.printed-code').val('<script> write your code between these lines </script>');

4

4 回答 4

3

如果您将 JavaScript 放在<script>元素中,则</script>字符串文字中的 将被识别为脚本的匹配结束标记。用转义序列分解字符串(在 JS 字符串文字中,\/与 相同/):

$('.printed-code').val('<script> write your code between these lines <\/script>');

… 或将脚本保存在外部文件中并使用<script src="foo.js"></script>.


如果您想向用户显示信息,那么您不应该使用 an<input>来执行此操作,因此您需要的是text()方法,而不是val()方法。(假设.printed-code匹配<code>适合手头任务的元素或其他内容)。

$('code.printed-code').text('<script> write your code between these lines </script>');
于 2013-07-27T13:59:21.547 回答
1

你应该像这样逃避/<\/script>. 否则你会得到错误,尤其是在</脚本块结束的旧浏览器中(不是</script>

于 2013-07-27T14:00:12.400 回答
0

之前有人回答了一个确切的代码示例,并包含了一个 jsfiddle。他出于某种原因删除了该帖子,但这是他提供的代码。我会把它标记为正确的。谢谢大家的意见

$('.printed-code').val('<scr'+'ipt> write your code between these lines </scr'+'ipt>');
于 2013-07-27T14:02:54.200 回答
-2

script标签是按字面意思解释的。

尝试:

alert('&lt;script&gt;hello&lt;/script&gt;')
于 2013-07-27T13:59:47.077 回答