2009-08-17 7 views
9

Quiero detener la solicitud del navegador cuando el usuario hace clic en cualquier botón de la interfaz de usuario, como el botón de detención en el navegador. Quiero hacerlo a través de javascript.Quiero detener la solicitud del navegador, cuando el usuario hace clic en cualquier botón de la interfaz de usuario, como botón de detención en el navegador

+1

En Firefox, incluso si presiona manualmente el botón de detención, no se detiene por completo. Solo deja de cargar el documento principal, pero continúa cargando otros elementos, como imágenes. Odio Firefox – Jamol

Respuesta

7

Puede probar algunas cosas .. Miré a un forum here

seguidores de eso ..

En Netscape, window.stop() parece funcionar (de la misma manera que el botón de parada en el navegador me adivinar). Sin embargo, esto no funciona en IE.

no creo que se puede detener el procesamiento en IE, pero es posible que intente una de los siguientes:

Event.cancelBubble esto es sólo IE y deja de propagación EVENTO. Sin embargo, una vez que se ha producido el evento (onSubmit, onClick o lo que sea que utilizó para iniciar la descarga), no estoy seguro de que esto lo detendrá.

Evento.razón IE solamente. Motivo mantiene el valor del código que especifica el estado de la transferencia de datos. 0 = exitoso, 1 = cancelado, 2 = error. I no recuerdo si esto es de solo lectura. Si no es así, quizás puede asignar un valor de 1 para abortar la transferencia.

Event.returnValue IE only. Citaré este. 'Si returnValue es establecido, su valor tiene precedencia sobre el valor realmente recibido por un controlador de eventos . Establezca esta propiedad en falso para cancelar la acción predeterminada para el elemento sourece en el que ocurrió el evento. '

Juega con ellos un poco. No veo nada más que pueda funcionar. Si no hacen nada para detener el proceso, probablemente no se puede hacer.

he encontrado una manera de hacer esto después de un gran trabajo de investigación - utilizar

Document.ExecCommand ("Stop");

Esto funciona en IE.

-1

Utilice el siguiente código para la solución cross browsers. he probado con FF3.5.2, Safari 3.1 y IE 7 y 8 de su funcionamiento muy bien

if(navigator.appName == "Microsoft Internet Explorer") 
    window.document.execCommand('Stop'); 
else 
    window.stop(); 
+1

El código base en el nombre del navegador es malas prácticas.En su lugar, debe usar el enfoque de prueba/captura de José, que se basa en características y es más resistente. –

17

Como Amit Doshi y el código Slaks sugiere que puede hacer eso. Pero me parece más eficiente intentarlo y atraparlo.

Sólo hay una alternativa a window.stop() por lo que tratar primero con un repliegue (para Internet Explorer) es el camino a seguir para apoyar a todos los navegadores:

try { 
    window.stop(); 
} catch (exception) { 
    document.execCommand('Stop'); 
} 
+0

Esta es una solución completa; aunque window.stop no forma parte de ninguna especificación, parece ser una DOM API aceptada. –

3

creo que esto es más flexible

"stop" in window ? window.stop : document.execCommand("Stop"); 
Cuestiones relacionadas