2013-03-25 84 views
1

我试图用嵌入代码创建一个textarea,所以用户可以复制该代码。 我有两种嵌入方法(第一种方法是带有配对div的脚本),另一种是iframe)。 我允许用户通过发送到服务器的参数来选择嵌入的小部件的大小。使用jQuery在textarea中插入脚本标记

textarea的内容应该是这样<script src="http://mysite.com/embed/product_id/width/height"></script>

通常,将被设置为编码HTML(& LT; & GT)当通过HTML打印出来,但在这种情况下,我需要通过将其设置的JavaScript。

所以这不起作用:

$('textarea.embed_code').val('<script src="http://mysite.com/embed/product_id/width/height"></script>'); 

结束标记突破这条线被设置初始脚本标签。

任何有关如何更改脚本源代码中宽度和高度的建议也可以(正则表达式,字符串替换...),在这种情况下,我只需从HTML打印出textarea内容。

其它任何标签工作正常,问题只是<script>

+1

不要使用为用户输入设计的元素来向用户显示输出。 – Quentin 2013-03-25 16:04:50

回答

7

在这样的字符串作为"</script>"<script>元数据,逃避/"<\/script>"。这将打破HTML结束标记语法,同时在JavaScript字符串文字语法中相当。

+0

我被你的意思转义为/而困惑,但基本上你的意思是逃避* ending *脚本标记,即<\/script>。很棒! – Qasim 2016-08-23 08:48:46

+0

@ Qasim - 我的意思是“逃避正斜杠字符”。只有一个正斜杠字符。它恰好是结束标记中的第二个字符。 – Quentin 2016-08-23 10:32:49