2010-07-17 5 views
0

Je reçois une erreur sur cette ligne dans IE8 avec l'erreur Non implémentée. Comment est-ce que j'exécute cette ligne sur d'autres navigateurs et IE8 l'ignore-t-il?Non implémenté IE8: contourner ce problème?

window.onbeforeunload = function() { 

C'est bizarre. Il n'y a rien à l'intérieur de cela qui devrait causer une erreur. Ce script est chargé à la fin du corps, donc tout le HTML existe et déplacer ce code vers le bas sur le fichier l'a résolu. Pourquoi?

window.onbeforeunload = function() { 
    var txtbox = $('.box textarea').eq(0); 
    var txt = txtbox.val(); 
    var btn = $('.box button').eq(0).html(); 
    if (btn == "Thank You") 
     return; 
    if (btn == "Sending") 
     return "not complete"; 
    if (txt != '') { 
     return "blah" 
    } 
    return; 
} 
+0

Cela arrête-t-il l'exécution de votre code? Si ce n'est pas le cas, ignorez-le simplement. – tcooc

+0

Il arrête l'exécution de code –

+0

Est-ce que c'est toute votre fonction? Si c'est le cas c'est une erreur de syntaxe/body/close manquant, si ce n'est pas le cas, alors publiez le contenu de la méthode, car quelque chose à l'intérieur provoque le problème. –

Répondre

0

Utiliser des commentaires conditionnels, ce qui signifie mettre un

<!--[if !(IE 8)]> 
<![endif]--> 

arround votre script <> -bloc

<!--[if !(IE 8)]> 
<script type="text/javascript"> 
window.onbeforeunload = function() { 
    [...] 
} 
</script> 
<![endif]--> 
+0

Ce code est dans un fichier JS plutôt que html. Donc je devrais le diviser et mettre un conditionnel autour de l'inclusion? –

+0

Oui, alors vous pouvez le diviser en deux fichiers JS et charger le second juste s'il n'est pas IE 8 avec les commentaires conditionnels comme expliqué ci-dessus. Mais cela vous ralentira un peu, puisque votre navigateur doit charger 2 fichiers JS. – JochenJung

0

Vous pourrait être en mesure d'utiliser Conditional Compilation, l'équivalent JS de Commentaires conditionnels

Vous n'êtes pas sûr de pouvoir faire un sniff de navigateur.