实际上我使用以下代码来关闭当前窗口:
window.close()
问题是,它在IE中运行良好,但它在FF和Chrome中无效。
这样做有什么好办法吗?
答案 0 :(得分:2)
function windowclose(w) {
try {
if (dojo.isIE>=7) {
w.open('', '_self', '');
w.close();
} else if (dojo.isIE==6) {
w.opener = null;
w.close();
} else {
if(!w.opener)
w.opener = 'x';
w.close();
}
} catch(e) {
alert("To avoid data corruption/loss, please close this window immediately.");
}
}
用作:
windowclose(window)
答案 1 :(得分:2)
我找到了部分解决方案,Java是你的朋友。它在按钮中工作也应该在链接中工作。唯一的问题是当从onClose这样的事件调用时,当前的xpage失去焦点并且当前页面保持打开状态。我试图模拟发送键,然后按ESC键。它可以通过按钮正常工作。 CLick事件上的按钮
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var robot:java.awt.Robot= new java.awt.Robot;var event:java.awt.event.KeyEvent=java.awt.event.KeyEvent;
robot.keyPress(event.VK_ESCAPE);
robot.keyRelease(event.VK_ESCAPE);
enter code here
}]]&GT;
</xp:eventHandler>
</xp:button>
答案 2 :(得分:0)
在Firefox中调用window.close()之前,您可能需要调用window.focus()
答案 3 :(得分:0)
我在使用Chrome / FF / IE的8.5.3应用程序中使用window.close没有问题。
在应用程序的主页面中,“案例文档”我在顶部有一些CSJS,用于命名页面即。
window.name="mainWindow";
然后我有一个允许你提出问题的按钮 - 这会弹出一个新窗口/标签,同时保持主案例文档打开。在新窗口中,有一个完整更新的提交按钮,在onComplete事件中,我有以下CSJS来更新主文档,这样你就可以在重复控件中的主文档上看到问题,显示Q&amp;的线程;文档:
if (window.opener!=null){
window.opener.location.href = window.opener.location.href;
window.close();}
else {
alert("Can't refresh parent case doc - have you closed the window?");
}
希望这有帮助