i在stackoverflow中搜索,找到Dojo版本以阻止Esc关闭客户端中的xPage选项卡。
<xp:eventHandler
event="onClientLoad"
submit="false">
<xp:this.script><![CDATA[dojo.addOnLoad( function(){
dojo.connect( document, 'keydown', function(e){
if(e.keyCode === 27){ dojo.stopEvent(e); }
});
});]]></xp:this.script>
</xp:eventHandler>
但如果我想阻止用户点击&#34; X&#34; =&#34;关闭&#34;窗体顶部的按钮关闭窗口。无论如何都要模糊&#34; X&#34;按钮?或者点击窗口使窗口无法关闭?
答案 0 :(得分:1)
如果您打算阻止浏览器标签关闭,我认为这是不可能的。也许它可以做到,但后来有很多陷阱。
您可以使用在卸载对象时触发的 onunload 事件。您还可以使用在加载元素时应该触发的 onbeforeunload 事件(但我发现它不可靠)。
棘手的部分是:为什么卸载会发生?是因为x,还是因为你有一些重新加载(部分)屏幕的程序化动作?在这两种情况下,都会触发卸载。
答案 1 :(得分:0)
如果您在Notes客户端选项卡上表示“x”,则无法在XPage应用程序的代码中执行此操作。
它作为Eclipse视图打开(与Designer中的Applications Navigator,Controls Palette,Problems等相同)。您必须查看Eclipse API并查看是否可以启动没有“x”的View来关闭它。但是,您需要使用XSP.executeCommand()和插件(最小R9)使用Eclipse调用从XPage启动表单。有关XSP.executeCommand()的唯一示例,请参阅掌握XPage第2版。
答案 2 :(得分:0)
正如其他人已经写过的那样:我认为你真的无法解决这个问题。因为:阻止用户关闭选项卡是不够的,他们也可能关闭整个浏览器窗口(可能包括Notes客户端窗口)。如果浏览器/客户端崩溃了怎么办?真的没办法抓住那个“事件” 我想你需要重新思考一下。