Документ iframe имеет значение null, хотя его окно содержимого не - PullRequest
0 голосов
/ 30 июня 2018

Я пытался использовать iframe для загрузки веб-страницы перекрестного происхождения на мой веб-сайт, но она не работает должным образом. Когда я загружаю свой веб-сайт, иногда iframe вообще не загружает веб-страницу, а когда он загружается, его document равно null.
Вот файл сценария (который включен в конец <body>)

var iframe = document.getElementById('myFrame');

iframe.onload = function() {
    alert('iframe loaded!');
    if(iframe.contentWindow)
    {
        alert('contentWindow checked');
    }
    if(iframe.contentWindow.document)
    {
        alert('document checked');
    }
}

Когда я загружаю страницу, я получаю только "iframe загружен!" и "contentWindow проверено" оповещения. Это также происходит, когда веб-страница вообще не загружается. По какой-то причине document всегда равен null, даже если веб-страница загружается нормально в iframe.
Я использую веб-браузер Chromium.

1 Ответ

0 голосов
/ 30 июня 2018

Свойство contentWindow возвращает объект Window, сгенерированный элементом iframe (через объект window вы можете получить доступ к объекту документа, а затем к любому из элементов документа). Вы можете использовать этот объект Window для доступа к документу iframe и его внутренней DOM. Этот атрибут только для чтения. следовательно, iframe.contentDocument.

var iframe = document.getElementById('myFrame');

iframe.onload = function() {
    alert('iframe loaded!');
    let contentWindow = (iframe.contentWindow || iframe.contentDocument) //this is better approach
    if(iframe.contentWindow)
    {
        alert('contentWindow checked');
    }
    if(iframe.contentDocument)
    {
        alert('document checked');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...