Xpage window.focus()不起作用

时间:2015-12-19 05:07:30

标签: window focus xpages xpages-ssjs

我有一个Xpage打开popUp窗口点击,仅举例来说我创建了2个按钮,即“popUp_form_clientSide”和“popUp_form_serverSide”

popUp_form_clientSide在客户端有一个调用“doPopup()”函数的事件。 popUp_form_serverSide在view.postScript("doPopup()");的帮助下从服务器端调用相同的函数

doPopup()在脚本中加载客户端。

Xpage代码:

 <xp:button value="popUp_form_clientSide" id="button4">
    <xp:eventHandler event="onclick" submit="false">
        <xp:this.script><![CDATA[var link ="http://google.com";
        doPopup(link);]]>
       </xp:this.script>
    </xp:eventHandler>
 </xp:button>


<xp:button value="popUp_form_serverSide" id="button3">
    <xp:eventHandler event="onclick" submit="true"
    refreshMode="partial" refreshId="button4">
    <xp:this.action><![CDATA[#{javascript:var link ="xx_openConfigPageN.xsp?docName=K1&pageName=K1&action=newDocument"
view.postScript("doPopup('"+link+"');")}]]>
    </xp:this.action>
   </xp:eventHandler>
</xp:button>

javaScript doPopup()代码:

var popupWindow = null;
var  doPopup = function (link)
{
  if (popupWindow && !popupWindow.closed)
    {
      popupWindow.focus();
     alert("In focus")
    }
  else
    {
     popupWindow = window.open(link,"New",
        "width=200,height=200");
    alert("New");
    }
  };

现在,如果我单击客户端按钮它可以正常工作,例如它打开弹出的传递变量链接,如果我再次点击它检查是否已经打开并关注窗口而不是打开新的。所以这是完美的,

但是当我点击服务器端按钮时,它正常打开弹出窗口,这是完美的,当我再次点击它时,它进入if条件警告“对焦”消息,但不将窗口放在前面(窗口。焦点()),

它经常聚焦窗口,但并非总是如此,在对比中,客户端按钮工作正常。

我不知道我在这里做错了什么,或者如果已经打开,有没有其他好办法专注于窗口。

我想让它从服务器端运行,因为链接变量包含来自数据库和条件的大量内容,所以我选择serverSide来执行此操作。

0 个答案:

没有答案