Javascript 停止加载iframe 所以我有iFrAME,我正在上传文件,所以我的问题是如何在加载过程中停止它?我曾尝试使用jquery函数attr()更改src,但没有任何效果,我正在考虑使用js删除整个iframe,但这会给我带来其他问题,我甚至不确定它是否有效。那么还有其他方法吗

Javascript 停止加载iframe 所以我有iFrAME,我正在上传文件,所以我的问题是如何在加载过程中停止它?我曾尝试使用jquery函数attr()更改src,但没有任何效果,我正在考虑使用js删除整个iframe,但这会给我带来其他问题,我甚至不确定它是否有效。那么还有其他方法吗,javascript,jquery,html,Javascript,Jquery,Html,我的下一个问题是,是否可以隐藏加载指示器,这样就不会让用户混淆页面正在加载或其他什么 像你应该使用flash或其他东西这样的答案不会被接受,我已经用iframe做了所有事情,我只需要做这两件事 以下是我的iframe代码: <iframe onload="file_uploaded()" class="iframe" src="user/upload_image/" name="iframeTarget" ></iframe> 我相信以下回答了您的问题: 对于Fire

我的下一个问题是,是否可以隐藏加载指示器,这样就不会让用户混淆页面正在加载或其他什么

像你应该使用flash或其他东西这样的答案不会被接受,我已经用iframe做了所有事情,我只需要做这两件事

以下是我的iframe代码:

<iframe onload="file_uploaded()" class="iframe" src="user/upload_image/" name="iframeTarget" ></iframe>

我相信以下回答了您的问题:

对于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].stop();
}
如果你想让iframe转到另一个页面,你可以尝试将其重定向到“about:blank”

这对我很有用(例如,Chrome、FF、Opera):


可以使用此选项禁用所有iframe内容

<script>
    var frames = window.frames;
    var i;

    for (i = 0; i < frames.length; i++) {
        frames[i].location = "";
    }
</script>

var frames=window.frames;
var i;
对于(i=0;i
您是否尝试过使用
文档更改src.location
?@michielvoo您能否更具体一点,我尝试过这样做
document.getElementById('myId').location=“#”
ofc我给了我的iframe id
myId
,但它不工作应该是
document.getElementById('myId').document.location
。而且我认为
“#”
不会起作用。您必须导航到另一个位置才能取消iframe中的操作,但是
#
只是当前页面中的一个未命名锚。但总的来说,你最好还是使用Rick Kuipers给出的下面的答案。可能是重复的感谢它起作用了,现在我如何删除那个恼人的加载指示器,这样用户就不会看到页面正在加载?你能解释一下你说的是哪个加载指示器吗?如果我们谈论的是游标,那么使用CSS
cursor:default可以解决这个问题。不,我说的是显示页面正在加载的所有内容,例如在firefox的右下角有一个显示所有元素正在加载的框,你知道我的意思。。。我想让它看起来像是我在使用ajax,但实际上我没有,我担心你无法避免。浏览器根本不让你控制它。据我所知。要避免使用jquery出现问题,请使用:
document.getElementById(“myId”).getElementsByTagName(“iframe”)[0]。stop()当您与页面及其URL无关,并且框架(iframe)位于另一个域上时,这实际上是一个很好的解决方案。纯js版本:
document.getElementsByTagName('iframe')[0].src=“about:blank”
请记住,您不能使用
frames[0]
,因为它在iframe中为您提供了
窗口
,而不是页面中具有
src
属性的iframe元素。
if (navigator.appName == 'Microsoft Internet Explorer') {
  window.frames[0].document.execCommand('Stop');
} else {
  window.frames[0].stop();
}
$iframe.attr('src','about:blank');
<script>
    var frames = window.frames;
    var i;

    for (i = 0; i < frames.length; i++) {
        frames[i].location = "";
    }
</script>