2011-10-14 9 views
3

Certains d'entre vous peuvent me dire pourquoi un simple alert() ne fonctionne pas avec jQuery 1.4 dans Internet Explorer 7, alors qu'il fonctionne dans tous les autres navigateurs? Cela m'a rendu fou maintenant pour la dernière demi-heure ..!Internet Explorer 7 + alert() ne fonctionne pas

$(document).ready(function(){ 
    alert("wtf?"); 
}) 

Cet exemple simple n'affiche pas d'alerte dans IE7. Voyez par vous-même au http://jsfiddle.net/8HQdp/.

+1

'alerte()' est une fonction JS qui n'a rien à voir avec jQuery. – Lekensteyn

+1

@Lekensteyn Vous voulez dire que cela n'a rien à voir avec JQuery .. – Rob

+1

Quelle erreur obtenez-vous? –

Répondre

4
  1. Assurez-vous que votre console n'affiche aucune erreur et corrigez-les s'il y en a.
  2. Assurez-vous que vous n'avez pas désactivé navigateur IE invites
  3. Essayez d'utiliser window.alert() - il est possible (mais improbable) qu'un autre alert() est en conflit avec window « s.
  4. Si vous avez la prise en charge de la console, essayez console.log(alert); et voyez ce que cela signifie. Il devrait être quelque chose comme:

    function alert() { 
        [native code] 
    } 
    
+0

'window.alert()' a fait l'affaire – yitwail

2

J'utilise IE8 mais avec le mode IE7, l'alerte sur http://jsfiddle.net/8HQdp/ se déclenche toujours. Essayez de changer $ pour jQuery et hébergez votre propre jquery.js.

Et essayez aussi console.log ('wtf') avant l'alerte afin que vous sachiez si elle est alert ou document.ready est cassé.

+0

Le console.log va rompre IE à coup sûr, puisqu'il ne connaît pas une propriété window.console ... Mieux vaut faire quelque chose d'évident, comme '$ ('body'). Hide()'. +1 pour tester pour voir, ce qui est cassé. – Boldewyn

+0

Essayé avec la suggestion de Boldewyn, et il cache le corps .. Donc c'est 100% que document.ready fonctionne très bien .. http://jsfiddle.net/8HQdp/3/ – donpedroper

0

Il fonctionne en mode IE 7 sous IE 8 à partir de moi. Prend un moment mais ça déclenche. J'ai remarqué qu'il manquait un point-virgule de la fonction prête. devrait être ...

$(document).ready(function(){ 

}); //missing semicolon here 

Aussi, essayez d'utiliser le raccourci pour la fonction prêt DOM ...

$(function(){ 
    // code here 
}); 
+0

Ah, ye - mon mauvais .. J'étais trop vite avec l'exemple :) Mais il ne fonctionne toujours pas dans IE7 malheureusement, ni avec le raccourci:/http://jsfiddle.net/8HQdp/4/ – donpedroper

+0

J'ai remarqué qu'il y a une erreur d'objet se produisant dans IE 7 que n'a rien à voir avec votre code, je pense que c'est un bug avec jsfiddle lui-même. Avez-vous essayé dans firefox ou un autre navigateur qui fonctionne? – simonlchilds

-1

Essayez d'utiliser window pas document.

+2

La 'fenêtre' sera toujours un peu" prête ". C'est 'document', ce n'est pas une erreur: http://api.jquery.com/ready/ D'où -1. – Boldewyn

Questions connexes