8

iframeのロードイベントにバインドされたイベントハンドラー関数があり、iframe内で取得されたコンテンツがHTMLかJSONかを知りたいです。これを達成する方法はありますか?

4

1 に答える 1

8

いくつかの調査の結果、iframeに読み込まれるコンテンツの種類を知るための最も実行可能な方法は、ドキュメントDOM要素のcontentType / mimeTypeプロパティを使用することです。このプロパティはさまざまな方法で取得できます。

ロードハンドラー関数の内部(方法1):

var iframedocument = $(this).contents().get(0);
var contentType = iframedocument.contentType || iframedocument.mimeType;

ロードハンドラー関数の内部(方法2):

var iframedocument  = this.contentDocument;
var contentType = iframedocument.contentType || iframedocument.mimeType;

ロードハンドラー関数の内部または外部(方法3):

var iframe = document.getElementById('iframe_id');
var iframedocument  = iframe.contentDocument;
var contentType = iframedocument.contentType || iframedocument.mimeType;

その場合contentType == 'application/json'、ロードされるドキュメントはJSONです。その場合contentType == 'text/html'、ドキュメントはHTMLです。

追記:このアイデアは、この質問に対するGeoff Wartzの回答から生まれました:jqueryで返されたjsonオブジェクトをリッスンする方法解決策は、この他の質問に対する提案された回答に基づいていました:iframeからコンテンツタイプを取得する方法は?。最後に、contentTypeMozillaFirefoxとの互換性とmimeTypeIEに使用する必要があります。

于 2012-09-20T19:56:38.733 に答える