2011-01-24 44 views
6

Al usar A4J, Richfaces en una aplicación web, necesito abrir una nueva ventana del navegador cuando el usuario hace clic en <a4j:commandButton>.abrir una nueva ventana en a4j: commandButton

Creo que tendré que usar window.open(URL, ...). ¿Dónde debería ponerlo?

Mis <a4j:commandButton> se ve así:

<a4j:commandButton id="elementDetailsButton" 
    onclick="if (!confirm('Are you sure? Unsaved data will be lost')) { return false; }" 
    action="#{myBean.elementDetailsAction}" 
    value="Element Details"> 
    <a4j:actionparam name="elementDetailsString" 
     value="getElementDetails()" 
     assignTo="#{myBean.elementDetails}" noEscape="true"> 
    </a4j:actionparam> 
</a4j:commandButton> 

Respuesta

5

puede confirmar el window.open y no return false

<a4j:commandButton id="elementDetailsButton" 
    onclick="if (confirm('Are you sure? Unsaved data will be lost')) { window.open(URL, ...) } else { return false }" (...) /> 

"más" es opcional, tal vez no sea necesario.

O puede cambiar el destino del formulario .. No recuerdo muy bien si su la sintaxis correcta ...

<a4j:commandButton id="elementDetailsButton" onclick="this.form.taget='_blank'" (...) /> 

... o algo por el estilo.

Cambiar el objetivo del formulario le dará un buen problema. El resto de su aplicación apuntará a la nueva ventana. Para resolver este problema, hice un <h:commandLink/> para cerrar la ventana (modalPanel) y restablecer el objetivo del formulario.

Estaba usando esto (el truco de destino) para abrir informes .pdf dentro de un <rich:modalPanel/> usando un <iframe/>.

Pero no estoy seguro de si cambiar el destino del formulario será útil para su problema ..

2

Como puedo ver desde su CommandButton desea solicitar confirmación, ejecutar una acción y abrir una nueva ventana de la derecha ? No estoy totalmente seguro de si un botón puede manejar tantas acciones, pero siempre puede intentar usar la configuración de carga y asignar una acción a la página que desea cargar y permitir que el botón coman maneje tanto la confirmación como la acción de abrir la ventana al igual que Renan sugirió.

Cuestiones relacionadas