Javascript jQuery(';body';).text()在不同的浏览器中给出不同的答案
我的HTML如下所示:Javascript jQuery(';body';).text()在不同的浏览器中给出不同的答案,javascript,jquery,firefox,google-chrome,opera,Javascript,Jquery,Firefox,Google Chrome,Opera,我的HTML如下所示: <html> <head> <title>Test</title> <script type="text/javascript" src="jQuery.js"></script> <script type="text/javascript"> function init() { var text = jQuery('body').te
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
function init()
{
var text = jQuery('body').text();
alert('length = ' + text.length);
}
</script>
</head>
<body onload="init()">0123456789</body>
</html>
然后所有浏览器都同意长度为10
显然是身体因素导致了这个问题,但是有人能解释为什么会发生这种情况吗?我特别惊讶,因为优秀的jQuery通常是独立于浏览器的。由于不同浏览器的行为方式不同,我建议:
jQuery('iframe').contents().find('body').text().trim();
这应该会产生一致的结果。由于不同浏览器的行为方式不同,我建议:
jQuery('iframe').contents().find('body').text().trim();
这应该会产生一致的结果。其中一些可能与浏览器将文本放在正文外但放在HTML内或HTML外的不同行为有关。如果HTML5解析器登陆后Firefox nightlies中的情况发生了变化,我也不会感到惊讶。这可能与浏览器将文本放在正文外但放在HTML内或HTML外的不同行为有关。如果HTML5解析器登陆后Firefox夜间版中的情况有所改变,我也不会感到惊讶。Opera会在BODY或HTML close标记后添加新行,并将它们添加到BODY contents AFAIK中。这可能就是额外的CR LF的来源。Opera在BODY或HTML close标记后添加新行,并将它们添加到BODY contents AFAIK中。这可能就是额外的CR LF的来源。在我看来,你已经完美地解释了发生的事情。如果你认为Chrome有一个bug,也许你应该将它提交给Chrome开发团队。我不知道这是一个Chrome bug,还是我没有预料到的正确行为。简而言之,这就是为什么我在StackOverflow上发布了一个问题。在我看来,你已经完美地解释了发生的事情。如果你认为Chrome有一个bug,也许你应该将它提交给Chrome开发团队。我不知道这是Chrome bug,还是我没有预料到的正确行为。简言之,这就是为什么我在StackOverflow上发布了一个问题。好主意,在这种情况下它是有效的。但是,如果我的意思是在最后有空格呢?请注意,这个答案中的示例代码是对这个问题的早期版本的响应,但是这个建议仍然有效。好主意,它在这种情况下有效。但是,如果我的意思是在最后有空格呢?请注意,这个答案中的示例代码是对这个问题的早期版本的响应,但是这个建议仍然有效。
jQuery('iframe').contents().find('body').text().trim();