我有一个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();如果我使用
var content = "<p>for(var i = 0 ; i< 10 ; i++) alert('hello')</p>";然后,它在IE-8中运行良好。有人能帮我吗?我怎样才能让$(content).text();也在IE8工作。每一个帮助都是值得感激的。
发布于 2013-09-03 11:47:57
问题在于浏览器正在看到字符串中的<script>标记,并决定这意味着脚本的结束。
第1课:不要在javascript代码中包含<script>标记,即使它在字符串中。浏览器有可能会误解它。
绕过它的方法:
<script>标记拆分为子字符串。例如
var content =“for(var i=0;i< 10;i++)警报(‘hello’)“;<script>标记--如果您使用它将JS代码插入到您的页面中,那么几乎可以肯定有更好的方法来这样做。也许您应该使用像require.js这样的库发布于 2013-09-03 11:41:13
你可能需要一个CDATA标签。
<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>发布于 2013-09-04 13:49:42
<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的回答。
https://stackoverflow.com/questions/18591355
复制相似问题