2013-09-30 87 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