编辑:我基本上认识到使用file://协议来重现这一点是必要的。此外,我使用--allow-file-access-from-files标志启动了Chrome。我现在使用正常的http协议,所以对我来说这个问题已经变得更加学术化了。如果它有用会很好,或者至少有人可以解释我发生了什么。
考虑以下HTML(在文件“a.html”中):
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta charset="utf-8" />
</head>
<body>
<article id="article-id">
<h3 class="entry-title">
Title-h3
</h3>
<div class="entry-content">
</div>
</article>
</body>
</html>
我正在尝试从另一个文件(比如index.html)加载#article-id标记的第一个子代,如下所示:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
$.get('a.html', function() {
return function(data)
{
alert(data);
var lTitle = jQuery("<div>").append(data)
.find("#article-id :first-child").html().trim();
alert(lTitle);
}
}());
在Safari 5.1.3中,第一个警报给出“[object Document]”,下一个jQuery语句抛出HIERARCHY_REQUEST_ERR。
在Chrome 19.0.1084.54中,这似乎按预期工作,我在第一个警报中获取加载的数据,在第二个警报中获取“Title-h3”。
这是jQuery中的错误还是我做错了什么?
奇怪的额外信息:如果你添加
<iframe width="500" height="369" src="http://www.youtube.com/" frameborder="0" allowfullscreen></iframe>
在div中,Safari可以作为Chrome使用。