Вы можете подтвердить 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 }" (...) />
«Остальное» необязательно, может быть и не нужно.
Или вы можете изменить цель формы.Я не очень хорошо помню, правильный ли это синтаксис ...
<a4j:commandButton id="elementDetailsButton" onclick="this.form.taget='_blank'" (...) />
... или что-то в этом роде.
Изменение целевого объекта создаст вам хорошую проблему.Оставшаяся часть приложения будет нацелена на новое окно. Чтобы решить эту проблему, я сделал <h:commandLink/>
, чтобы закрыть окно (modalPanel) и сбросить цель формы.
Я использовал это (целевой трюк) для открытия .pdf отчетов внутри <rich:modalPanel/>
с использованием <iframe/>
.
Но я не уверен, что изменение цели будет полезно для вашей проблемы ..