2011-06-07 4 views
9

J'ai ce script:SCRIPT1014: caractère non valide

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); 
}); 

qui fonctionne très bien sur un navigateur, mais IE. Sur IE, IU obtenir

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

Quel est le problème ici?

+6

Hors sujet mais lié à votre code: Vous ne devez jamais passer une chaîne à 'setInterval' ou' setTimeout'. Passez une fonction à la place. Dans votre cas: 'setInterval (slideSwitch, 1000);', si vous avez besoin de passer des arguments: 'setInterval (function() {/ * ce que vous voulez faire, par exemple appeler une fonction * /}, 1000);' – ThiefMaster

+0

Merci pour le pourboire. –

Répondre

10

Il semble que IE n'a pas aimé le fait que j'accédais à la page sans un serveur HTTP :) J'accédais à c: \ www \ my-file. Lors de l'accès http://localhost/my-file .. a bien fonctionné.

+0

J'ai le même problème et avoir le fichier en ligne le résout comme vous l'avez dit. Mais y a-t-il moyen de le faire fonctionner sans avoir à mettre le fichier en ligne? – Clox

+1

Je ne suis pas sûr. Vous pouvez avoir un serveur http installé localement et y accéder via localhost/... –

+9

Effacer le cache dans IE l'a résolu pour moi =) – Clox

7

Le problème est probablement dû au fait que le fichier est codé en UTF-8 et que le fichier est introduit via une étiquette de script qui ne définit pas ce codage. Si vous ajoutez charset="UTF-8" en tant qu'attribut à la balise de script d'importation, nous espérons que cela le corrigera.

+0

J'ai le même problème, malheureusement cela ne l'a pas corrigé pour moi – Clox

+1

IE9.x en cours d'exécution/développement local (un emplacement sur mon lecteur C:). Échoue. Fonctionne à partir de la ressource http. Téléchargé des fichiers localement pour travailler dessus. J'ai tout essayé. Rafraîchir. Vider le cache et actualiser Chrome fonctionne. Encodage vérifié, pas UTF-8. Fichier ouvert dans Notepad ++ enregistré en ASCII. Ça n'a toujours pas marché. Avoir un doctype approprié. De Notepad ++ a fait un tout sélectionner ... copier ... collé dans un nouveau fichier, enregistré en ASCII. Ça n'a toujours pas marché. On dirait un problème de local. Copié sur une carte SD/F: lecteur et la page chargée de IE. J'ai bien travaillé. Copié dans mon répertoire C: \ temp, a bien fonctionné. Toujours ne fonctionnera pas d'orig. chemin. – raddevus

8

J'ai eu le même problème. Il a indiqué qu'il y avait une erreur dans la ligne 1 de la ligne 1 du fichier principal. J'utilise une tonne d'AJAX dans la page que j'utilisais.

Tout se résumait au fait que j'avais onclick = "#" sur une étiquette A. Une fois que j'ai enlevé cela, l'erreur est partie.

Je pense que lorsque jQuery charge le code HTML via un appel AJAX, il prend les balises onclick et traite le javascript qu'il trouve à l'intérieur.

+1

Cette réponse a corrigé mon instance de ce problème. – BigPigVT

+1

Vous ne pouvez pas imaginer la frustration que j'ai après 2 heures de recherche et de débogage IE pour découvrir que c'était ce qui se brisait pour moi. Merci un million! –

0

Attention aux littéraux de chaînes de gabarits. Cette erreur a été provoquée par un

` 

caractère pour moi dans IE11.

Questions connexes