首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery;正确选择脚本标签内容

Jquery;正确选择脚本标签内容
EN

Stack Overflow用户
提问于 2012-03-05 19:55:12
回答 6查看 3.1K关注 0票数 5

我有一个使用jquery的单页web应用程序和一组嵌入式模板。模板可能包含如下标签:

代码语言:javascript
复制
<script type="html/template" id="sample">

<script type="text/javascript" charset="utf-8">alert('x');</script>


</script>

检索模板的jquery代码是

代码语言:javascript
复制
$("#sample").html();

上面jquery命令的输出是

代码语言:javascript
复制
<script type="text/javascript" charset="utf-8">alert('x');

而不是

代码语言:javascript
复制
<script type="text/javascript" charset="utf-8">alert('x');</script>

如何修复此输出?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-05 20:23:13

<script>中的所有内容都应该是脚本,而不是HTML。

浏览器会看到:

<script type="html/template" id="sample">

并开始解释随后显示为脚本的所有内容,当它到达内部<script时,它被视为只是文本。

例外的是浏览器正在寻找</script>,以便将上下文从脚本切换到HTML.因此,当它在以下位置看到第一个</script>时:

<script type="text/javascript" charset="utf-8">alert('x');</script>

它假定打开的脚本块已完成,并切换回预期的HTML,并将外部脚本节点的内容正确设置为:

<script type="text/javascript" charset="utf-8">alert('x');

您可以在服务器上实现您想要做的事情并在服务器上进行解析,也可以使用不同的模板方法。

票数 1
EN

Stack Overflow用户

发布于 2012-03-05 20:21:23

我不确定这会对你有帮助。

代码语言:javascript
复制
 var a = $("#sample").html() +'</'+'script>';

 alert(a);​

小提琴链接:http://jsfiddle.net/Sg5W8/

票数 2
EN

Stack Overflow用户

发布于 2012-03-05 20:34:13

HTML中不允许嵌套的script标记,如果通过validator运行嵌套脚本,将会出现Stray end tag script错误。

您需要转义脚本标记,或者使用其他元素作为模板语法的持有者元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9566195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档