2012-06-05 29 views
30

Duplicar posibles:
Ajax request problem: error 80020101No se pudo completar la operación debido a error 80020101. IE

estoy usando jQuery-1,64 y este es mi código para restablecer el temporizador

var message="Logged in"; 
var myTimeout = setTimeout("timerDone()",1000 * 1440); 
function timerDone() 
{ 
    message="Logged out"; 
} 
function timerReset() 
{ 


    clearTimeout(myTimeout); 
    myTimeout = setTimeout("timerDone()", 1000 * 1440); 
} 

Pero me da un error, solo en IE, cuando intento hacer clearTimeout. ¿Alguna idea ????

Respuesta

34

No sé por qué pero funcionó para mí. Si tiene comentarios como

//Comment 

Otorga este error. Para solucionar esto, haga

/*Comment*/ 

No tiene sentido, pero funcionó para mí.

+4

Gracias.Elimine también cualquier coma final en la matriz de opciones de JavaScript. – Arunu

0

¿Cuándo llamas a timerReset()? Tal vez obtienes ese error cuando intentas llamar después de que setTimeout() ya haya hecho su trabajo.

envolverlo en

if (window.myTimeout) { 
    clearTimeout(myTimeout); 
    myTimeout = setTimeout("timerDone()", 1000 * 1440); 
} 

de edición: En realidad, después de reflexionar, ya que hizo mencionar jQuery (y sin embargo no tienen ningún código real jQuery aquí ... Me pregunto si ha anidado dentro de este algunos jQuery (como el interior de un $(document).ready(.. y esto es una cuestión de ámbito de variable Si es así, intente lo siguiente:.

window.message="Logged in"; 
window.myTimeout = setTimeout("timerDone()",1000 * 1440); 
function timerDone() 
{ 
    window.message="Logged out"; 
} 
function timerReset() 
{ 


    clearTimeout(window.myTimeout); 
    window.myTimeout = setTimeout("timerDone()", 1000 * 1440); 
} 
+1

timerReset() se llama cuando el usuario hace clic en algo o, básicamente, siempre que carga la página. –

+0

No funcionó. No estoy seguro de si es este error, aunque IE lo señala, porque cuando se carga debe mostrar pestañas de acordeón, lo que no ocurre en IE. Además, IE señala el error jQuery1.6 por alguna razón –

5

envolver su bloque de código entero en esto:

//<![CDATA[ 

//code here 

//]]> 

Asimismo, asegúrese de especificar el tipo de secuencia de comandos para ser text/javascript

tratar eso y que me haga saber cómo va

2

Apague la compatibilidad ver si utiliza IE9.

+0

podría haberlo intentado pero ya no puedo confirmarlo porque ya hemos lanzado el sitio. Pero podría funcionar aunque –

+2

¿Y pedir a sus usuarios que hagan lo mismo? –

30

Todo el error 80020101 significa que hubo un error, de algún tipo, al evaluar JavaScript. Si carga ese JavaScript mediante Ajax, el proceso de evaluación es particularmente estricto.

veces quitando // será solucionar el problema, pero la inversa no es cierto ... el problema no siempre es causada por //.

Mira el JavaScript exacto que devuelve tu llamada Ajax y busca cualquier problema en esa secuencia de comandos. Para más detalles ver una gran valoración crítica aquí

http://mattwhite.me/blog/2010/4/21/tracking-down-error-80020101-in-internet-exploder.html

+0

siguió esto y funcionó :) – Bogdan

+1

Un ejemplo: si carga un documento HTML parcial y lo agrega a su documento (por ejemplo, usando AngularJS) que tiene una etiqueta de script, puede ser útil incluir los JavaScripts directamente – Joelbitar

Cuestiones relacionadas