1

我想打开一个新窗口,配置了高度和宽度,同时使用 <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() 函数。它使用 target="_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);
};
4

1 回答 1

0

我找到了一些相关的链接,并且我找到了这个解决方案,这似乎对我有用。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" />
于 2013-10-11T19:41:20.117 回答