Ok, yo soy el primero en admitir que esto es una respuesta feo, pero parece que funciona:
alert = 0;
var win = window.open(),
method = win.alert;
win.close();
method.call(window, "my message");
Fiddle here. En esencia, se crea una nueva instancia de la ventana y robar su método alert
. El inconveniente es que en realidad tiene que abrir una nueva ventana del navegador, aunque sea brevemente. Dudo que esta sea en realidad una solución práctica para su problema, depende de qué otro sitio intente trabajar y cuánto le interesa su solución al usuario final.
Editar: Este es un combo de la respuesta anterior y la respuesta de jfriend00, que resuelve el problema "abrir una nueva ventana". Creo que esta es una opción algo mejor, ya que a) no se basa en que el iframe todavía está en el DOM cuando necesitas llamar al método, yb) debe ser generalizable a cualquier método window
, que probablemente no sea la respuesta de jfriend00 't.
alert = 0;
// make a new window instance in an iframe
var iframe = document.createElement("iframe");
iframe.height = iframe.width = 0;
document.body.appendChild(iframe);
// steal the method
var method = iframe.contentWindow.alert;
// remove the evidence
document.body.removeChild(iframe);
// now use the method for your own purposes
function myAlert(message) {
method.call(window, message);
}
myAlert("foo");
si es útil El diálogo de confirmación de Javascript se puede utilizar para mostrar un mensaje si se pueden ignorar los botones sí/no. – Ekim