同じ問題があり、これに追加しました。クロスドメインポリシーに関係なく、iframeが読み込まれるかどうかを確認する必要がありました。Webページに特定のスクリプトを挿入し、親ページのコンテンツをiframeに表示するChrome拡張機能を開発していました。私は次のアプローチを試しましたが、これは私にとって完璧に機能しました。
PS:私の場合、iframeのコンテンツは制御できますが、親サイトは制御できません。(Iframeは自分のサーバーでホストされています)
最初に:次のような属性を
持つiframeを作成しますdata-
(私の場合、この部分は挿入されたスクリプトにありました)
<iframe id="myiframe" src="http://anyurl.com" data-isloaded="0"></iframe>
次に、iframeコードで次を使用します
var sourceURL = document.referrer;
window.parent.postMessage('1',sourceURL);
私の場合のように、挿入されたスクリプトに戻ります。
setTimeout(function(){
var myIframe = document.getElementById('myiframe');
var isLoaded = myIframe.prop('data-isloaded');
if(isLoaded != '1')
{
console.log('iframe failed to load');
} else {
console.log('iframe loaded');
}
},3000);
そして、
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
if(event.origin !== 'https://someWebsite.com')
{
console.log('URL issues');
return;
}
else {
var myMsg = event.data;
if(myMsg == '1'){
$("#myiframe").prop('data-isloaded', '1');
}
}
}
それは質問に正確に答えないかもしれませんが、それは確かに私がこの方法で解決したこの質問の可能なケースです。