java - pagina - ventana modal bootstrap
¿Cómo vencer la ventana emergente del diálogo del navegador al llamar a Wicket setResponsePage() desde la ventana modal? (4)
Creo que setResponsePage()
debería ir acompañado de algunos otros métodos para comportarse correctamente. Por ejemplo, a menudo setRedirect(true)
cuando uso esta técnica. No estoy seguro de qué está sucediendo detrás de escena allí, pero quizás intente eso.
Cómo vencer la ventana emergente de diálogo de IE y Firefox al intentar configurarResponsePage () desde una wicket modalWindow por debajo. La ventana emergente del cuadro de diálogo exige una respuesta a: "Esta página le pide que confirme que desea irse; es posible que los datos que ingresó no se guarden".
AjaxLink signInContainer = new AjaxLink("signInContainer") {
@Override
public void onClick(AjaxRequestTarget target) {
target.appendJavascript("Wicket.Window.unloadConfirmation = false;");
modalWindow.close(target);
setResponsePage(SignInPage.class);
modalWindow.close(target);
}
};
-Rico
target.appendJavascript("Wicket.Window.unloadConfirmation = false;");
no funciona porque debe ejecutarse antes de modal.show(target);
.
Usted podría anteponer, en lugar de agregar, la secuencia de comandos al abrir la ventana:
add(new AjaxLink<Void>("show") {
@Override
public void onClick(AjaxRequestTarget target) {
target.prependJavascript("Wicket.Window.unloadConfirmation = false;");
modal.show(target);
}
});
o agregue un comportamiento, para ejecutarlo en onload
:
modal.add(new AbstractBehavior() {
@Override
public void renderHead(IHeaderResponse response) {
response.renderOnLoadJavascript("Wicket.Window.unloadConfirmation = false;");
}
});
Sin embargo, debe setResponsePage()
antes de abrir la ventana modal, no cuando se navega fuera de la página ( setResponsePage()
).
En wicket 6.x puedes simplemente configurar showUnloadConfirmation en falso:
final ModalWindow modalWindow = new ModalWindow("modalWindow");
modalWindow.showUnloadConfirmation(false);
EDITAR: Este es un truco, usa la alternativa descrita en mi otra respuesta .
Prueba esto:
public void onClick(AjaxRequestTarget target) {
modal.close(target);
CharSequence url = urlFor(HomePage.class, new PageParameters("gone=true"));
target.appendJavascript("window.location=''" + url + "'';");
}