2011-06-07 52 views
9

tengo este script:SCRIPT1014: carácter no válido

function slideSwitch() { 
    var ae = jQuery('#featured-right a.active'); 
    if (ae.length == 0) { 
     ae = jQuery('#featured-right a:first'); 
     var i = jQuery('#featured-right a').index(ae); 
     var bae = jQuery('#featured-left a.fb-'+i); 
     bae.show(); 
    } 

    var ne = ae.next().length ? ae.next() : jQuery('#featured-right a:first'); 
} 

$(document).ready(function(){ 
    var ae = jQuery('#featured-right a.active'); 
    if (ae.length == 0) { 
     ae = jQuery('#featured-right a:first'); 
     ae.addClass('active'); 
     var i = jQuery('#featured-right a').index(ae); 
     jQuery('#featured-left a.fb-'+i).show(); 
     jQuery('#featured-right a:not(.active) span.key').hide(); 
    } 
    setInterval("slideSwitch()", 1000); 
}); 

que funciona muy bien en cualquier navegador, pero el IE. En IE, IU obtiene

SCRIPT1014: Invalid character featured.js, line 1 character 1 

¿Qué sucede aquí?

+6

Fuera de tema pero relacionado con su código: Nunca debe pasar una cadena a 'setInterval' o' setTimeout'. Pase una función en su lugar. En su caso: 'setInterval (slideSwitch, 1000);', si necesita pasar argumentos: 'setInterval (function() {/ * lo que quiera hacer, por ejemplo, llamar a una función * /}, 1000);' – ThiefMaster

+0

Gracias para la propina –

Respuesta

10

Parece que a IE no le gustó el hecho de que estaba accediendo a la página sin un servidor HTTP :) Estaba accediendo a c: \ www \ my-file. Al acceder a http://localhost/my-file .. funcionó muy bien.

+0

Tengo el mismo problema y tener el archivo en línea lo resuelve como usted dijo. Pero, ¿hay alguna forma de hacer que esto funcione sin tener que poner el archivo en línea? – Clox

+1

No estoy seguro. Puede tener un servidor http instalado localmente y acceder a él a través de localhost/... –

+9

Limpiar el caché en IE lo resolvió para mí =) – Clox

7

Es probable que el problema sea que el archivo está codificado en UTF-8 y el archivo se envía mediante una etiqueta de script que no define esta codificación. Si agrega charset="UTF-8" como un atributo a la etiqueta del script de importación, con suerte lo arreglará.

+0

Tengo el mismo problema, lamentablemente esto no lo solucionó – Clox

+1

IE9.x ejecutándose/desarrollándose localmente (una ubicación en mi C: unidad). Falla Funciona desde el recurso http. Archivos descargados localmente para trabajar en ellos. Intenté todo. Refrescar. Vaciar caché y actualizar. Chrome funciona Codificación revisada, no UTF-8. Archivo abierto en Notepad ++ guardado como ASCII. Aún no funcionó. Tener el tipo de documento adecuado. Desde Notepad ++ hizo una copia de selección ... todo ... pegado en un archivo nuevo, guardado como ASCII. Aún no funcionó. Parece un problema de local. Copiado en una tarjeta SD/F: unidad y página cargada desde IE. Funcionó bien. Copiado en mi directorio C: \ temp, funcionó bien. Aún no funcionará desde orig. camino. – raddevus

8

Tuve este mismo problema. Dijo que había un error en la línea 1 fila 1 del archivo principal. Uso una tonelada de AJAX en la página que estaba usando.

Todo se reducía al hecho de que tenía onclick = "#" en una etiqueta A. Una vez que eliminé eso, el error desapareció.

Creo que cuando jQuery carga el html a través de una llamada AJAX, toma las etiquetas onclick y procesa el javascript que encuentra dentro.

+1

Esta respuesta solucionó mi instancia de este problema. – BigPigVT

+1

No se puede imaginar la frustración que tengo después de 2 horas de investigación y depuración de IE para descubrir que esto era lo que me estaba fallando. ¡Gracias un millón! –

0

Tenga cuidado con los literales de cadena de plantilla. Este error fue causado por un

` 

personaje para mí en IE11.

Cuestiones relacionadas