Остановка загрузки страницы iframe с помощью javascript



Есть ли в javascript способ остановить iframe в середине загрузки страницы? Причина, по которой мне нужно это сделать, заключается в том, что у меня есть фоновый iframe потоковых данных с веб-сервера (через механизм стиля Comet), и я должен быть в состоянии разорвать соединение по желанию.



Любые идеи приветствуются.

580   6  

6 ответов:

Для FireFox / Safari / Chrome вы можете использовать окно.stop ():

window.frames[0].stop()

Для IE вы можете сделать то же самое с документом.execCommand ('Stop'):

window.frames[0].document.execCommand('Stop')

Для кроссбраузерного решения вы можете использовать:

if (navigator.appName == 'Microsoft Internet Explorer') {
  window.frames[0].document.execCommand('Stop');
} else {
  window.frames[0].stop();
}

Весь код должен быть таким, (в строке unclenorton отсутствовала скобка)

if (typeof (window.frames[0].stop) === 'undefined'){
    //Internet Explorer code
    setTimeout(function() {window.frames[0].document.execCommand('Stop');},1000);
}else{
    //Other browsers
    setTimeout(function() {window.frames[0].stop();},1000);
}

Просто,

document.getElementById("myiframe").src = '';

Очень просто:

1) получите iframe или img, которые вы не хотите загружать:

let myIframe = document.getElementById('my-iframe')

2) тогда вы можете просто заменить атрибут src на about.пробел:

myIframe.src = 'about:blank'

Вот и все.


Если вы хотите загрузить iframe или изображение в момент, когда происходит какое-либо событие, то просто сохраните переменную src в dataset :

myIframe.dataset.srcBackup = myIframe.src
// then replace by about blank
myIframe.src = 'about:blank'

Теперь вы можете легко использовать его при необходимости:

myIframe.src = myIframe.dataset.srcBackup

Если у вас есть только ссылка на элемент, вам нужно использовать .contentX, чтобы получить document/window запустить принятый ответ.
Проверка наличия документа в iframe также необходима для динамически добавляемых элементов iframe.

function stopIframe(element) {
    var doc = element.contentDocument;
    //iframes wont have a document if they aren't loading/loaded
    //check so JS wont throw
    if (!doc)
        return;

    //try for modern browsers
    if (doc.defaultView.stop)
        doc.defaultView.stop();
    //fallback for IE
    else
        doc.execCommand('Stop');
}

Не поддерживается в IE

<script>
function stopit() {
window.stop();

};
</script>


<a href="#" onclick="stopit()" class="Stop" title="Stop"></a>

Comments

    Ничего не найдено.