Остановка iframe от загрузки страницы с использованием JavaScript - PullRequest
20 голосов
/ 05 февраля 2010

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

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

Ответы [ 6 ]

31 голосов
/ 05 февраля 2010

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

window.frames[0].stop()

Для IE вы можете сделать то же самое с document.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();
}
13 голосов
/ 21 июня 2012

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

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);
}
1 голос
/ 10 октября 2013

всего,

document.getElementById("myiframe").src = '';
0 голосов
/ 26 июня 2018

Если у вас есть только ссылка на элемент, вам нужно использовать .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');
}
0 голосов
/ 02 ноября 2017

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

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

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

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

myIframe.src = 'about:blank'

Вот и все.


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

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

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

myIframe.src = myIframe.dataset.srcBackup
0 голосов
/ 16 июня 2015

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

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

};
</script>


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