使用javascript停止加载页面的iframe

时间:2010-02-05 13:34:00

标签: javascript dom iframe comet

在加载页面的过程中,javascript中是否有停止iframe的方法?我需要这样做的原因是我有一个来自Web服务器的后台iframe流数据(通过Comet样式机制),我需要能够随意切断连接。

欢迎任何想法。

6 个答案:

答案 0 :(得分:31)

对于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();
}

答案 1 :(得分:13)

整个代码应该是这样的,(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);
}

答案 2 :(得分:1)

仅仅,

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

答案 3 :(得分:0)

非常简单:

1)获取您不想加载的iframe或img:

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

2)然后你可以将src属性替换为about.blank:

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

答案 4 :(得分:0)

如果仅对元素进行引用,则需要使用.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');
}

答案 5 :(得分:-1)

  

不支持IE

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

};
</script>


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