window.close导致野生动物园旋转沙滩球

时间:2018-12-24 21:16:50

标签: javascript safari

我有一个带有按钮的页面,该按钮可以打开带有表单的子页面。子页面上有一个“取消”按钮,它本身执行window.close。但是在窗户关闭后,我得到了野生动物园(12.02)旋转的沙滩球。在我做其他一些事情之后似乎消失了。 Chrome和Firefox似乎没有问题。我尝试查看开发人员工具的时间轴,并且正在执行大量的js操作,但我不知道它是什么。

尝试添加return false;和鬼混的窗口名称,但似乎没有任何帮助。还使用了苗条的框架,但不要紧。有jquery,但在此操作中不使用它。

在父页面上:

<script>  
function openMiniAsset(id_id){
   var id = document.getElementById(id_id).value;
   // alert ('id' +id + "params: " + params );
    var newin = window.open('/asset_mini/'+id,'asset_mini');
    return false;
}
</script>
...
 <button type='button' 
 onClick= "openMiniAsset('edit_asset_id');return false;">
 Open</button>

在子页面上:

<button type='button' onClick="self.close();return false;">
Cancel</button>

3 个答案:

答案 0 :(得分:1)

可以通过使关闭窗口成为异步过程来避免这种情况。

    setTimeout(function() {
        window.open('about:blank', '_self').close();
    }, 100);

答案 1 :(得分:0)

这显然是野生动物园中的错误。最后,我测试了两个简单的页面:一个页面上没有任何东西,只有第二个窗口是window.open按钮,第二个页面只有一个按钮是window.close()。我仍然得到旋转的沙滩球。感谢Barmar调查。

答案 2 :(得分:0)

替换

onClick="self.close();return false;"

使用

onClick="setTimeout(self.close,100);return false;"

为我工作。