2013-09-30 29 views
1

打开我想打开一个新的窗口,以高度和宽度配置,所有在使用< H:commandLink>时H:commandLink在新的浏览器窗口

<h:commandLink id="zyzid" value="click me" action="#{test.testDo}" target="_blank" /> 

此呈现为:

<a onclick="mojarra.jsfcljs(document.getElementById('myForm'),{'myForm:xyzid':'myForm:xyzid'},'_blank');return false" href="#" id="myForm:xyzid">click me</a> 

我看着jsfcljs()函数。它提交的目标=“_ blank”,但我没有看到window.open()任何地方。那么,我将如何能够改变这个代码来改变新窗口的高度和宽度?

供参考:

mojarra.jsfcljs = function jsfcljs(f, pvp, t) { 
    mojarra.apf(f, pvp); 
    var ft = f.target; 
    if (t) { 
     f.target = t; 
    } 
    f.submit(); 
    f.target = ft; 
    mojarra.dpf(f); 
}; 
+2

您不要使用类似''或'一(模式)对话框的任何原因的'(你的问题记录确认你熟悉RichFaces)还是基于jQuery的自制软件?毕竟,这对终端用户,网页浏览器和弹出式窗口拦截器也更友好,因此不太可能引起烦恼和/或麻烦。 – BalusC

+0

从导航的角度来看 - 我们希望用户打开多个窗口并能够在主控和细节之间切换。但从技术方面来说 - 这个页面有第三方组件,包含最新的jquery和jquery-ui。我也在该页面上使用extJs组件来管理其布局,以接管窗口。所以把它放在不同的视图上是有道理的。我还将同一页上的一个jsf与第三方组件混合在一起,只要RichFaces组件未被引用,它就不会加载RF4的jquery。 btw,balusC,我爱你的jsf/rf反应! – Elijah

+0

第三方组件使用的jQuery与RF4不兼容。 Rf4.2.0.Final是1.7.1,它们是1.9.1。我去了一次升级RF4的jQuery,并尝试重新添加弃用/删除的功能。但1.9.1中有太多了。我从设计开始就制作了一个浏览器选项卡,但现在人们问我是否可以将其从浏览器中分离出来并设置宽度/高度。听起来很琐碎,但是我没有一次通过 Elijah

回答

0

我发现了几个有关linksthis和我来到这个解决方案,这似乎为我工作。 h:commandLink打开一个新页面,我可以操纵它的宽度和高度。这涉及到稍微修改/覆盖mojarra.jsfcljs函数。它用标准的window.open()(由onclick触发)打开一个窗口,并将它正在提交的窗体与该窗口相关联。

$(window).load(function(){ 
      mojarra.jsfcljs = function jsfcljs(f, pvp, t) { 
       mojarra.apf(f, pvp); 
       var ft = f.target; 
       if (t) { 
        if (t.indexOf('options') != -1){ 
         f.target = '_blank' + new Date().getTime(); 
         var options = t.substring(t.indexOf('optionts') + 9); 
         window.open('', f.target, options); 
        } 
        else{ 
         f.target = t; 
        } 
       } 

       f.submit(); 
       f.target = ft; 
       mojarra.dpf(f); 
       }; 
     }); 

标记:

< h:commandLink id="viewLink" action="#{testBean.doTest}" value="h:commandLink" target="options:height=200, width=300" /> 
+2

@BalusC赞同你的意见吗? :-) – Elijah