我有一个带有按钮的页面,该按钮可以打开带有表单的子页面。子页面上有一个“取消”按钮,它本身执行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>
答案 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;"
为我工作。