У мене була та ж проблема, і я додав до неї, що мені потрібно було перевірити, чи завантажується iframe незалежно від міждоменної політики. Я розробляв розширення chrome, яке вводить певний сценарій на веб-сторінку та відображає деякий вміст із батьківської сторінки у iframe. Я спробував наступний підхід, і це мені вдалося.
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');
}
}
}
Це може не точно відповісти на питання, але це справді можливий випадок цього питання, який я вирішив цим методом.