2012-03-09 63 views
0

在我的web應用程序當前有許多彈出窗口由各種JS函數,我想用Rich替換:ModalPanel(我使用Myfaces 2.0.12和RichFaces 3.3.3)。下面是一個典型的例子我喜歡取代:從javascript window.open移動到Rich:ModalPanel

window.open("<%=basePath1%>jsp/custhistory.faces?userid="+pk); 

pk何處從一個隱藏的輸入如<h:inputHidden id="userPk" value="#{1234}"/>重試javascript函數內的值,然後加入到上面的URL的結尾。

查看幾個RichFaces ModalPanel示例(和演示)我無法弄清楚如何使用ModalPanel來完成上述工作。有人可以提供一個例子或資源鏈接嗎?

回答

0

我一直在使用Richfaces 4,但同樣的理論應該適用。

模態面板本質上是一個可以顯示或隱藏的div,因此如果您明確需要(或希望)面板爲單獨文件,則可以在該模式中添加<ui:include>

模態面板呈現爲您網頁的一部分,但我認爲它的樣式爲display:none。如果這是由客戶端操作觸發的,則可以調用Richfaces API以按命令顯示面板。

例如,而不是一個命令(鏈接|按鈕)觸發Richfaces.$('elName').show()它可能觸發您的js函數,設置和值/ PARAMS您模式面板的需求,然後調用.show()本身。

注意:IE和firefox有一個真正的模式彈出。這不是真正的模式,JavaScript將在後臺處理,如果用戶輸入它,則不會將焦點留在彈出窗口中,而會在後臺與應用程序進行交互。

我用了一個模式JS彈出窗口提示用戶使用的是/你如何通用希望這個彈出INT他的類型成語

if(askUser("some question?")=='yes'){ 
    //some code to do if yes 
}else{ 
    //some code to do if no 
} 

根據的毫無疑問,這是不是真的有可能不使用觸發事件併爲該事件定義一個事件處理程序來處理該函數的其餘部分。