阻止iframe使用javascript加载页面 是否有一个方法在加载页面时停止iFrAME?我需要这样做的原因是我有一个来自web服务器的后台iframe流数据(通过Comet样式的机制),我需要能够随意断开连接
欢迎任何想法。对于FireFox/Safari/Chrome,您可以使用window.stop(): 对于IE,您可以对document.execCommand('Stop')执行相同的操作: 对于跨浏览器解决方案,您可以使用:阻止iframe使用javascript加载页面 是否有一个方法在加载页面时停止iFrAME?我需要这样做的原因是我有一个来自web服务器的后台iframe流数据(通过Comet样式的机制),我需要能够随意断开连接,javascript,dom,iframe,comet,Javascript,Dom,Iframe,Comet,欢迎任何想法。对于FireFox/Safari/Chrome,您可以使用window.stop(): 对于IE,您可以对document.execCommand('Stop')执行相同的操作: 对于跨浏览器解决方案,您可以使用: if (navigator.appName == 'Microsoft Internet Explorer') { window.frames[0].document.execCommand('Stop'); } else { window.frames[0].
if (navigator.appName == 'Microsoft Internet Explorer') {
window.frames[0].document.execCommand('Stop');
} else {
window.frames[0].stop();
}
整个代码应该是这样的(unclenorton的行缺少一个括号) 只是
document.getElementById("myiframe").src = '';
不支持IE
函数stopit(){
window.stop();
};
非常简单:
1) 获取您不想加载的iframe或img:
let myIframe = document.getElementById('my-iframe')
2) 然后您可以将src属性替换为about.blank:
myIframe.src = 'about:blank'
就这些
如果希望在某个事件发生时在功能中加载iframe或图像,则只需将src变量存储在: 现在,您可以在需要时轻松使用它:
myIframe.src = myIframe.dataset.srcBackup
如果您只有对元素的引用,则需要使用
.contentX
获取文档
/窗口
以运行接受的答案。对于动态添加的iframe元素,还需要检查iframe是否实际具有文档
函数stopIframe(元素){
var doc=element.contentDocument;
//如果没有加载,iFrame就不会有文档
//检查以使JS不会抛出
如果(!doc)
返回;
//尝试使用现代浏览器
if(doc.defaultView.stop)
doc.defaultView.stop();
//IE的退路
其他的
doc.execCommand('Stop');
}
没有足够的信心将其作为一个答案,但您不能直接将iframe指向另一个url吗?类似于document.getElementById(“myiframe”).src=”http://www.example.com/not-long-polling.html";
这是我的第一个想法(+1),但我需要保留框架的内容。检查typeof(window.frames[0].stop)
可能比检查navigator.appName
更好。未来的IE版本可能会支持这一点。@MorSela,我想说的是,最好检查功能,而不是浏览器。该条件将类似于(typeof(window.frames[0].stop=='undefined')
。感谢您的回答。我同意unclenorton的观点:最好测试功能本身的存在性,而不是测试浏览器。Alex使用typeof()的示例非常有效。对于那些使用jQuery的人来说,我在测试stop
函数时遇到了问题,原因是。为了解决这个问题,我使用了javascript dom选择器,如:document.getElementById(“myId”).getElementsByTagName(“iframe”)[0]
。我不知道是否有一个简单的替代方案,但它确实起到了作用。请看一看公认的答案,我认为它与您发布的答案完全相同。为什么要使用setTimeout
呢?这并不会停止大型和繁重的javascript执行,比如Unity WebGL Build。
<script>
function stopit() {
window.stop();
};
</script>
<a href="#" onclick="stopit()" class="Stop" title="Stop"></a>
let myIframe = document.getElementById('my-iframe')
myIframe.src = 'about:blank'
myIframe.dataset.srcBackup = myIframe.src
// then replace by about blank
myIframe.src = 'about:blank'
myIframe.src = myIframe.dataset.srcBackup