Pourquoi n'est-il pas de chrome de l'exécution de cette javascript
Lorsque je l'exécute dans le navigateur Chrome (version 2), il ne renvoie pas la chaîne, mais il fonctionne dans Firefox (version 3). Pourquoi est-ce?
<html>
<head>
<script type="text/javascript">
function disp_prompt() {
var name=prompt("Please enter your name","Harry Potter");
if (name!=null && name!="") {
document.write("Hello " + name + "! How are you today?");
}
}
</script>
</head>
<body>
<input type="button" onclick="disp_prompt()" value="Display a prompt box" />
</body>
</html>
Je suis assez sûr que vous pouvez raccourcir votre " if (nom != null && nom != "")' déclaration 'si (nom)'.
OriginalL'auteur ehfeng | 2009-04-17
Vous devez vous connecter pour publier un commentaire.
Pour ajouter le contenu d'un document, vous devez seulement appeler
document.write()
au cours de la <script>-bloc de l'analyse de phase.Si vous avez un appel à
document.write
quelque part où il exécute en dehors de ce contexte, comme dans votre gestionnaire d'événement, il n'y a pas d'analyse en cours, donc nulle part de cette chaîne'foo'
aller.Ce qui devrait se produire en fonction de la d'origine de référence JavaScript est:
Qui est, il suppose que vous avez fait une erreur et destinée à faire:
Qui remplace le document entier avec de nouveaux contenus. Vous remarquerez également que, parce que vous n'avez pas fini que par l'appel:
...dans Firefox, le "chargement" throbber est encore l'animation, s'attendant plus de contenu à être écrite dans le document (mais il ne vient jamais).
Dans ce cas, vous êtes
document.write()
ing une chaîne de caractères:qui n'est clairement pas un document HTML valide. Chrome (et Safari, qui se comporte de la même) est d'essayer de l'analyser comme un document HTML, mais échoue, car il est non-blanc texte contenu à l'extérieur de l'élément de document (<html>), ce qui n'est pas autorisé. Si vous mettez un peu de balises dans le nom de l'entrée:
Vous verrez tout à l'extérieur de la <em> élément est ignoré. Firefox et IE gérer à appliquer leurs “corriger le texte en dehors de tout élément de” broken-HTML-de la règle pour vous sauver, mais Chrome ne fonctionne pas.
Si vous voulez
document.write()
un nouveau document, vous devez vous assurer qu'il est en effet un document complet:Ou, si vous voulez
document.write()
une chaîne de texte, vous devriez théoriquement appel:avant de l'écrire(). Mais attention, le type mime paramètre n'est pas pris en charge par Chrome ou Safari; ils vont toujours traiter ce que vous écrivez comme HTML.
Dans tous les cas, vous ne voulez probablement pas à l'aide de cette méthode. Si vous souhaitez ajouter (ou modifier) de la page, vous devriez normalement être en utilisant les méthodes du DOM, telles que la mise en place du texte sur une sortie de l'état de div, ou de remplacer le contenu du corps en utilisant innerHTML.
document.write()
est nécessaire dans quelques endroits (en particulier, lorsque vous créez une nouvelle fenêtre ou un cadre à partir de zéro), mais sinon, c'est généralement pas la bonne chose et doit être considérée avec suspicion.Merci merci merci!!!!!! (Je souhaite qu'il y aurait une option pour donner 10 voix contre une seule réponse: j'ai un toute la semaine de la recherche et de lecture sur la façon de résoudre d'exécution de javascript, de l'ajax (extrait de la page de remplacer tout le document... Si seulement j'avais cherché pour le document.écrire exécution de javascript questions sur chrome avant!!)
OriginalL'auteur bobince
n'utilisez pas de document.écrire. si vous la changez pour soemthing comme
document.écrire est assez étrange comportement. Où pensez-vous que le texte soit écrit?
Je pense qu'il y a un support supplémentaire après "! Comment êtes-vous aujourd'hui?".
Oh. J'ai juste commencé à apprendre le javascript via tutoriels web. merci pour l'astuce!
Je pensais que le texte était juste censé être écrit dans la fenêtre du navigateur.
une fois ou deux fois, j'ai atteint un point dans le document.écrire est la seule solution qui a fonctionné pour moi, donc gardez à l'esprit que, parfois, il peut rendre votre vie plus facile
OriginalL'auteur Jimmy