有没有一种方法可以在javascript中停止iframe加载页面的过程?我需要这样做的原因是,我有一个后台的iframe通过Comet机制从Web服务器流式传输数据,我需要能够随意断开连接。
欢迎任何想法。
有没有一种方法可以在javascript中停止iframe加载页面的过程?我需要这样做的原因是,我有一个后台的iframe通过Comet机制从Web服务器流式传输数据,我需要能够随意断开连接。
欢迎任何想法。
对于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();
}
typeof(window.frames[0].stop)
而不是 navigator.appName
。未来的IE版本可能会支持这种方式。 - unclenorton(typeof (window.frames[0].stop === 'undefined')
。 - unclenortonstop
函数时遇到了问题,因为有一个与之同名的jQuery方法。为了解决这个问题,我使用了JavaScript DOM选择器,像这样:document.getElementById("myId").getElementsByTagName('iframe')[0]
。我不知道是否有更简单的替代方法,但它确实能够完成工作。 - v42if (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);
}
setTimeout
? - Nishi1)获取您不想加载的 iframe 或 img:
let myIframe = document.getElementById('my-iframe')
2) 然后,您只需将src属性替换为about.blank:
myIframe.src = 'about:blank'
那就这些。
myIframe.dataset.srcBackup = myIframe.src
// then replace by about blank
myIframe.src = 'about:blank'
myIframe.src = myIframe.dataset.srcBackup
document.getElementById("myiframe").src = '';
.contentX
来获取document
/window
以运行已接受的答案。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');
}
<script>
function stopit() {
window.stop();
};
</script>
<a href="#" onclick="stopit()" class="Stop" title="Stop"></a>
document.getElementById("myiframe").src = "http://www.example.com/not-long-polling.html";
- Richard JP Le Guen