0

编辑:我基本上把事情归结为使用 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 一样工作。

4

0 回答 0