編集:私は基本的に、これを再現するためにfile://プロトコルを使用するために必要なことを理解しました。また、Chromeを--allow-file-access-from-filesフラグで起動しました。私は現在通常の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では、これは期待どおりに機能しているようで、最初のアラートで読み込まれたデータを取得し、2番目のアラートで「Title-h3」を取得します。
これはjQueryのバグですか、それとも何か間違ったことをしていますか?
奇妙な余分な情報:追加した場合
<iframe width="500" height="369" src="http://www.youtube.com/" frameborder="0" allowfullscreen></iframe>
div内では、SafariはChromeとして機能します。