2011-01-26 2 views
0

J'ai utilisé le code Javascript suivant pour protéger ma page Web, mais cela ne fonctionne pas pour IE, même si cela fonctionne très bien pour Chrome et Firefox.Mon code Javascript ne fonctionne pas dans IE mais fonctionne bien dans d'autres navigateurs

<script language="JavaScript"> 
    var password; 
    var pass1="PASSWORD-HERE"; 
    password=prompt('Whats The Magic Word?',' '); 
    if (password==pass1) alert('That Is Correct!'); 
    else { 
     window.location="SITE-LINK"; 
    } 
</script> 

Qu'est-ce qui ne va pas?

S'il vous plaît consulter le lien: http://www.xuanyinwen.com/test3.html il fonctionne sur Firefox et Chrome, mais pas IE, lorsque vous ouvrez le lien dans IE, il a pas de pot de message en demandant le mot de passe, et automatique aller au SITE-LINK. Je sais que ce script n'est pas très sécurisé, mais je veux juste l'utiliser pour une protection de base, je veux juste le faire fonctionner. Merci pour toute aide!

+2

Que signifie "ça ne marche pas"? Que fait-il au lieu de ce que vous attendiez? – Phrogz

+5

Il est ** impossible ** de "protéger" une page Web avec rien d'autre que du code JavaScript. – Pointy

+0

Et l'attribut 'language' a été déprécié il y a longtemps. Utilisez l'attribut 'type' (ou rien dans HTML 5) à la place. –

Répondre

1

Essayez ceci:

<script> 
    prompt('Password:') === '1234' ? 
     alert('Correct!') : 
     window.location.href = 'http://www.google.com'; 
</script> 

La différence est que vous définissez la propriété au lieu href.

btw J'ai testé cela dans IE9 beta et cela fonctionne.

+0

J'ai un sentiment de son réglage du navigateur IE parce que j'ai essayé le javascript et cela fonctionne pour moi en mode IE7/8/quirk. – kjy112

+0

Je viens d'essayer votre script mais c'est toujours la même chose pour moi, travailler dans firefox et chrome, mais pas IE. aucune idée pourquoi s'il vous plaît – xuanyinwen

+0

@xuan Quelle version d'IE testez-vous? –

0

Personnellement, je n'utiliserais pas javascript pour la protection par mot de passe ... surtout quand il peut être affiché publiquement.

Vérifiez si x actif est désactivé. fonctionne sur IE 7/8 et le mode de bizarrerie pour moi

IE Désactiver le pop-up bloc et automatique permettent x actifs:

ouvert IE aller à Outils-> Options Internet> Avancé-> Sécurité faisons permettent que actifs x sont autorisés. Ensuite, allez dans Outils-> Options Internet-> Confidentialité et assurez-vous que la fenêtre contextuelle n'est pas bloquée.

AVERTISSEMENT: JE NE RECOMMANDE PAS DE FAIRE CECI! APRÈS ESSAI S'IL VOUS PLAÎT UTILISER DEFAULT JE NE PEUT ÊTRE RESPONSABLE

+0

Salut merci pour la réponse, je sais que ce n'est pas très sécurisé pour le script, mais je l'utilise juste pour la protection de base. pourriez-vous me dire où je peux vérifier active x diable, est-ce sur l'option IE? Merci encore. – xuanyinwen

+0

J'ai activé le x actif mais toujours pas de chance de le faire fonctionner sur IE. Bravo – xuanyinwen

+0

@xuanyinwen Je ne pense pas que vous devriez continuer à suivre cette route à moins que ce soit absolument nécessaire pour accomplir ce que vous essayez de faire. Assurez-vous également que votre IE est réglé sur le paramètre par défaut et réessayez. – kjy112

-1

Essayez ceci:

<script language="JavaScript"> 
var password; 
var pass1="PASSWORD-HERE"; 
password = prompt('Whats The Magic Word?',' '); 
if (password === pass1) 
    alert('That Is Correct!'); 
else 
    window.location="SITE-LINK"; 
</script> 

La différence étant de 3 signes égal au lieu de 2. Double-égale en JavaScript permet de l'essayer d'exécution à faire la contrainte de type sur les éléments étant comparé, alors qu'avec trois égaux il les compare exactement comme-est. Toutefois, comme l'a noté l'intervenant ci-dessus, l'utilisation de javascript comme seule protection par mot de passe est au mieux naïve.

+0

Cela ne devrait pas le faire échouer, dans ce cas. –

+0

Salut, merci pour votre idée, mais il ne fonctionne toujours pas pour IE après que je l'ai changé. une autre idée s'il vous plaît? Bravo – xuanyinwen

+0

Fonctionne bien sur IE8 pour moi. Et Marcel a raison - ma modification ne fait pas un peu de différence. Peut-être que si vous pouviez nous éclairer sur ce qui ne fonctionne pas pour vous, cela nous aiderait. – rswafford

Questions connexes