2011-01-24 1 views
6

Используя A4J, Richfaces в веб-приложении, мне нужно открыть новое окно браузера, когда пользователь нажимает на <a4j:commandButton>.открыть новое окно в a4j: commandButton

Я думаю, что мне нужно будет использовать window.open(URL, ...). Где я должен это поставить?

Мои <a4j:commandButton> выглядит следующим образом:

<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> 

ответ

5

Вы можете подтвердить window.open и не return false

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

"Else" является необязательным, может быть, не нужно.

Или вы можете изменить цель формы .. Я не очень хорошо помню, если его правильный синтаксис ...

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

... или что-то в этом роде.

Изменение цели формы даст вам хорошую проблему. Остальное приложение будет нацелено на новое окно. Чтобы решить эту проблему, я сделал <h:commandLink/>, чтобы закрыть окно (modalPanel) и сбросить цель формы.

Я использовал этот (целевой трюк) для открытия отчетов .pdf внутри <rich:modalPanel/> с использованием <iframe/>.

Но я не уверен, что в случае изменения целевой формы будет полезно для вашей проблемы ..

2

Как я могу видеть из вашего CommandButton вы хотите запросить подтверждение, выполнить действие и открыть новое окно права ? Я не совсем уверен, что кнопка может обрабатывать так много действий, но вы всегда можете попытаться использовать конфигурацию onload и назначить действие для страницы, которую хотите загрузить, и позволить commanbutton обрабатывать как подтверждение, так и действие открытия окна так же, как и - предложил Ренан.

 Смежные вопросы

  • Нет связанных вопросов^_^