首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery .text()剥离不在IE-8中工作的html。

Jquery .text()剥离不在IE-8中工作的html。
EN

Stack Overflow用户
提问于 2013-09-03 11:38:26
回答 3查看 939关注 0票数 1

我有一个javascript代码:

代码语言:javascript
复制
<html>
<head>
</head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
function datacheck(content){
var content = "<script>for(var i = 0 ; i< 10 ; i++) alert('hello')</script>";
 var text = $(content).text();

alert(text);

}
</script>
<body>
<div>
Click  <input type="button" name="button1" onclick="datacheck()" />
</div>
</body>
</html>

$( content ).text();如果我使用

代码语言:javascript
复制
 var content = "<p>for(var i = 0 ; i< 10 ; i++) alert('hello')</p>";

然后,它在IE-8中运行良好。有人能帮我吗?我怎样才能让$(content).text();也在IE8工作。每一个帮助都是值得感激的。

EN

回答 3

Stack Overflow用户

发布于 2013-09-03 11:47:57

问题在于浏览器正在看到字符串中的<script>标记,并决定这意味着脚本的结束。

第1课:不要在javascript代码中包含<script>标记,即使它在字符串中。浏览器有可能会误解它。

绕过它的方法:

  • 在脚本代码周围包括注释或CDATA标记。例如
  • 将字符串中的<script>标记拆分为子字符串。例如 var content =“for(var i=0;i< 10;i++)警报(‘hello’)“;
  • 只是不要以这种方式使用<script>标记--如果您使用它将JS代码插入到您的页面中,那么几乎可以肯定有更好的方法来这样做。也许您应该使用像require.js这样的库
票数 3
EN

Stack Overflow用户

发布于 2013-09-03 11:41:13

你可能需要一个CDATA标签

代码语言:javascript
复制
<script>
<![CDATA[
function datacheck(content){
var content = "<script>for(var i = 0 ; i< 10 ; i++) alert('hello')</script>";
 var text = $(content).text();

alert(text);

}
]]>
</script>
票数 1
EN

Stack Overflow用户

发布于 2013-09-04 13:49:42

代码语言:javascript
复制
<script>
function datacheck(content){
var content = "<script>for(var i = 0 ; i< 10 ; i++) alert('hello')</script>";
content = '<![CDATA[' + content + ']]>';
 var text = ($(content).text()).replace(']]>', '');
alert(text);
}
</script>

这样才能正常工作。谢谢tea2code的回答。

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

https://stackoverflow.com/questions/18591355

复制
相关文章

相似问题

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