将脚本作为字符串添加到textarea值中

时间:2013-09-03 03:41:12

标签: javascript jquery

这个问题非常自我解释。我想要做的是用jQuery更改textarea的值。我所做的是:

$( '#embedcode' ).val( "<script id='embed_1' src='/javascripts/test.js' type='text/javascript'></script>" );

这样做的正确方法是什么。我一直收到错误:

Uncaught SyntaxError: Unexpected identifier

如何使我想要添加为字符串而不是脚本。

4 个答案:

答案 0 :(得分:4)

你走了:

使你的字符串像这样:

$('#embedcode').val("<script id='embed_1' src='\/javascripts\/test.js' type='text\/javascript'><\/script>");

看看我为你制作的这个JsFiddle:

http://jsfiddle.net/KB9Qn/14/

答案 1 :(得分:3)

您的代码似乎完美无缺。这是现场演示:Click here

您需要检查出现错误的行号。

编辑:我刚想到了。如果您的html标记有错误(可能是未关闭的textarea),则可以将脚本评估为脚本标记而不是文本。检查一下。 Here is a live example of an html error that will cause your problem. Click here.

更新:我相信我确切知道真正的问题是什么。其他帖子建议你逃避'&lt;'和'&gt;',但只有当你使用的这个javascript实际上是在一个html文件(或由服务器生成的html)而不是在它所属的js文件中时,才应该这样做。在js文件中,它自然就是你编写的字符串,但html文件将其视为标记,即使它并非如此。这是为什么你应该遵循最佳实践并将javascript保存在js文件中的一个例子。

答案 2 :(得分:3)

你需要逃避“&lt;”和“&gt;”。

$('#embedcode').val("\<script id='embed_1' src='/javascripts/test.js' type='text/javascript'\>\</script\>");

Demo

答案 3 :(得分:2)

使用<

转义字符串中的>\