阻止用户点击" X" xpages表单上的关闭按钮

时间:2015-07-23 07:42:58

标签: jquery dojo xpages xpages-ssjs

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;按钮?或者点击窗口使窗口无法关闭?

3 个答案:

答案 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客户端窗口)。如果浏览器/客户端崩溃了怎么办?真的没办法抓住那个“事件” 我想你需要重新思考一下。