'nuff said. No tengo ni idea de por qué usar alert() no funcionaría. Funciona perfectamente en Firefox, pero da ese error en Chrome.
Respuesta
window.alert = null;
alert('test'); // fail
delete window.alert; // true
alert('test'); // win
window
es una instancia de DOMWindow
y estableciendo algo que window.alert
, la correcta aplicación está siendo "sombreados", es decir, cuando se accede a alert
es primero buscándolo en el objeto window
. Por lo general, esto no se encuentra, y luego sube la cadena de prototipos para encontrar la implementación nativa. Sin embargo, al agregar manualmente la propiedad alert
al window
, la encuentra de inmediato y no necesita subir la cadena del prototipo. Con delete window.alert
puede eliminar la propiedad propia de la ventana y volver a exponer la implementación del prototipo de alert
. Esto puede ayudar a explicar:
window.hasOwnProperty('alert'); // false
window.alert = null;
window.hasOwnProperty('alert'); // true
delete window.alert;
window.hasOwnProperty('alert'); // false
Gracias amigo, esto pareció hacer el truco. No tengo idea de qué es lo que está configurando 'window.alert' para anular, incluso eliminar todas las bibliotecas de terceros que estoy trayendo no condujo a ninguna parte. Extraño. –
@ Charlie Somerville: ¿Tal vez tenga algún tipo de extensión que inyecte scripts en páginas web? – pimvdb
@pimvdb Resulta que el complemento de Chrome "Mejor bloqueador de ventanas emergentes" decidió que es apropiado establecer alerta, confirmar y solicitar nulo. Desinstalado. –
Tome un vistazo a este tema: http://code.google.com/p/chromium/issues/detail?id=4158
El problema es causado por el javascript método "window.open (URL, windowName [, windowFeatures])". Si se especifica el 3er windowFeatures parámetros, a continuación, cuadro de alerta no funciona en la ventana emergente limitado en Chrome, aquí es una reducción simplificada:
http://go/reductions/4158/test-home-constrained.html
Si los windowFeatures 3er parámetro es ignoraron , caja luego a la alerta funciona en el emergente en Chrome (la ventana emergente es en realidad abierto como una nueva pestaña en Chrome), como esto:
http://go/reductions/4158/test-home-newtab.html
no ocurre en IE7, Firefox3 o Safari3, es un problema específico de Chrome.
Véase también los accesorios para simplificados reducciones
La página web no está en una ventana emergente ni nada, es solo una página normal. –
Tuve el mismo problema recientemente en mi servidor de prueba. Después de buscar razones por las que esto podría estar sucediendo y probando las soluciones que encontré aquí, recordé que había hecho clic en la opción "Deje de crear esta página emergente" unas horas antes, cuando el script en el que estaba trabajando aparecía de forma alarmante. .
La solución fue tan simple como cerrar la pestaña y abrir una nueva.
Esto también funciona para mí, deshabilité la ventana emergente en cromo y olvidé la acción. Una vez que abrí una nueva pestaña, todo está bien. Gracias :) –
Aquí hay un fragmento que no necesita ajQuery y permitirá alertas en un marco flotante para discapacitados (como en codepen)
for (var i = 0; i < document.getElementsByTagName('iframe').length; i++) {
document.getElementsByTagName('iframe')[i].setAttribute('sandbox','allow-modals');
}
que aquí hay una demostración codepen de trabajo con una alerta() después de esto fijar así: http://codepen.io/nicholasabrams/pen/vNpoBr?editors=001
ponga esta línea en el extremo del cuerpo. Puede ser que el DOM no esté listo todavía en el momento en que el compilador lea esta línea.
<script type="text/javascript" src="script.js"></script>"
- 1. CORS no funciona en Chrome
- 2. less.js no funciona en Chrome
- 3. Onclick no funciona en Chrome
- 4. W3C Geolocalización API no funciona en Chrome
- 5. Esto funciona en Chrome pero no en IE, ¿por qué?
- 6. jQuery slideToggle() no funciona en Firefox, funciona en Chrome
- 7. XSL no funciona en Google Chrome
- 8. jCarousel no funciona correctamente en Chrome
- 9. ¿Por qué Ajax.BeginForm no funciona en Chrome?
- 10. event.stopImmediatePropagation() no funciona en Chrome para Android
- 11. La alimentación Rss no funciona en Chrome
- 12. Bootstrap popover no funciona en Chrome
- 13. onunload no funciona en Chrome y safari
- 14. jQuery/iframe no funciona en Chrome
- 15. jQuery val no funciona correctamente en Chrome
- 16. enfoque() no funciona en Safari o Chrome
- 17. Desbordamiento-x: oculto no funciona en Chrome
- 18. window.location no funciona en el navegador Chrome
- 19. setInterval no funciona correctamente en Chrome
- 20. Inicialización de matriz JavaScript simple no funciona en Chrome
- 21. evento onblur no funciona con google chrome
- 22. Chrome depuración remota no funciona con IP
- 23. Acción del navegador Chrome no funciona
- 24. jQuery CSS rendering - funciona en Firefox, no en Chrome
- 25. Animación CSS: ¿Funciona en Chrome pero no en Firefox?
- 26. hls en html5 no funciona en el navegador Android Chrome
- 27. Jquery Form.submit() en Chrome funciona pero no en Firefox
- 28. jQuery Alert Dialogs
- 29. Javascript for..in bucles sobre argumentos ie.for (arg en argumentos) no funciona en IE8 pero funciona en Chrome 8
- 30. Javascript alerta cajas no trabajando en Chrome
¿Podría probar 'window.alert' (sin invocar) y publicar el resultado por favor? – pimvdb
¿Quizás has deshabilitado la alerta en algún lugar del código? 'alert ('foo');' funciona perfectamente en mi Chrome. – Xaerxess
@Xaerxess Sin embargo, no explicaría por qué funcionaría en Firefox. – alex