Safari使用jQuery $ .get方法加载Document对象而不是数据,从而生成HIERARCHY_REQUEST_ERR

时间:2012-06-13 09:09:25

标签: javascript jquery google-chrome safari

编辑:我基本上认识到使用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使用。

0 个答案:

没有答案