我想向用户打印或回显代码,但是当我尝试这样做时,我得到一个非法错误。我将如何将以下代码显示为普通文本而不是执行它:
alert('<script>hello</script>');
当我收到错误时,我一直在尝试使用 jQuery 将其打印到文本框中,如下所示:
$('.printed-code').val('<script> write your code between these lines </script>');
我想向用户打印或回显代码,但是当我尝试这样做时,我得到一个非法错误。我将如何将以下代码显示为普通文本而不是执行它:
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>
.
如果您想向用户显示信息,那么您不应该使用 an<input>
来执行此操作,因此您需要的是text()
方法,而不是val()
方法。(假设.printed-code
匹配<code>
适合手头任务的元素或其他内容)。
$('code.printed-code').text('<script> write your code between these lines </script>');
你应该像这样逃避/
:<\/script>
. 否则你会得到错误,尤其是在</
脚本块结束的旧浏览器中(不是</script>
)
之前有人回答了一个确切的代码示例,并包含了一个 jsfiddle。他出于某种原因删除了该帖子,但这是他提供的代码。我会把它标记为正确的。谢谢大家的意见
$('.printed-code').val('<scr'+'ipt> write your code between these lines </scr'+'ipt>');
script
标签是按字面意思解释的。
尝试:
alert('<script>hello</script>')