2012-04-17 39 views
7

Estoy teniendo dificultades para encontrar una solución a mi problema. He aquí un fragmento de código:mensaje() con Internet Explorer 8

var ans = prompt("Mot de passe", ''); 
if (ans != '' && ans != null) 
    __doPostBack('__Page', ans); 
else 
    window.location = "../Erreurs/NotAuthorized.aspx"; 

Este código funciona realmente muy bien con Internet Explorer 9. Sin embargo, mi cliente está trabajando exclusivamente con Internet Explorer 8, así que probamos con IETester en IE8. Pero el problema es que el mensaje no muestra y se redirige automáticamente porque la entrada tenía una cadena vacía ('').

Entonces, ¿cómo puedo arreglar esto para que funcione con Internet Explorer 8?

+0

¿importa si añade algo al segundo parámetro? –

+0

Si agrego (por ejemplo) 'test' en el segundo parámetro, el aviso tampoco aparece. ¿Es un error conocido con ieTester o simplemente no funciona con un IE8 real? – Soader03

Respuesta

3

Se ve como una cosa de seguridad específico para IE-8 a ciencia cierta, que no tienen otras versiones de prueba. Llamar al prompt() produce una advertencia sobre una ventana con guiones que solicita información. Puedo hacer clic para permitir y luego de actualizar la página, el cuadro de diálogo aparece como se esperaba.

Si va a insistir en usar prompt(), probablemente tendrá que estipular que las configuraciones de seguridad en las máquinas de destino están configuradas para permitirlo.

7

IE tiene una configuración en Opciones de Internet para permitir o denegar prompt().

IE prompt setting http://adamhaskell.net/img/ie-prompt.png

Por defecto en IE8, este ajuste está apagado. En consecuencia, las llamadas a prompt() se ignoran y "" las devuelve.

No debe usar prompt() de todos modos. Usa un formulario.

2

El sitio web del desarrollador de Microsoft nos dice que "prompt()" está obsoleto y ahora normalmente bloqueado por razones de seguridad: "De forma predeterminada, la barra de información de la zona de Internet bloquea este método. ataques de suplantación. "

Ver http://msdn.microsoft.com/en-us/library/ms536673.aspx

Cuestiones relacionadas