2010-03-10 10 views
0

Je suis nouveau en javascript, mon script est conçu pour afficher une image ou l'autre image avec une chance 50/50. Cela a fonctionné en safari mais pas en firefox, cela coupe trop de clients pour le site que je suis en train de concevoir.
Toute aide serait appréciée, surtout si quelqu'un pouvait dire comment s'assurer que cela fonctionnerait dans tous les navigateurs. Sinon, je peux comprendre comment l'ignorer dans Firefox ou une autre combinaison de ce genre.Javascript Browser Issue

var randomnumber=Math.floor(Math.random()*2) 

if (randomnumber > 0) 
{ 
    document.write("<img src="Easter.jpg">"); 
} 
else 
{ 
    document.write("<img src="StPatrick.jpg">"); 
} 

Oh et le code réel a & q u o t; . Au lieu de "où il doit être dans le cas où vous vous demandiez si qui faisait ça marche pas Il fonctionne dans Safari - tout simplement pas dans Firefox ou camino

+1

Lorsque vous voulez une réponse, s'il vous plaît Acceptez - cliquez sur la coche à côté de la réponse que vous qui fonctionne le mieux pour vous. Merci! – Val

Répondre

2

Vous devez échapper aux citations internes.

if (randomnumber > 0) 
{ 
document.write("<img src=\"Easter.jpg\">"); 
} 
else 
{ 
document.write("<img src=\"StPatrick.jpg\">"); 
} 

l'intérieur d'une chaîne qui se termine par ", lorsque vous souhaitez insérer un guillemet, vous devez « échapper » en mettant un \ avant d'

EDIT: Je viens de voir votre édition où vous dit que le code réel a &quot; dedans. le code est:

document.write("<img src=&quot;Easter.jpg&quot;>"); 

Cela ne fonctionnera pas. il va littéralement écrire:

<img src=&quot;Easter.jpg&quot;>

Modifier le &quot; à \"

+0

et de fermer l'élément 'img' aussi –

+0

@Russ: Seulement si c'est XHTML ou HTML 4.01 Transitional – Josh

+0

Vous pouvez aussi simplement utiliser un guillemet simple, ', au lieu d'un guillemet double échappé. – JAL

2

Essayez

var randomnumber=Math.floor(Math.random()*2) 

if (randomnumber > 0) { 
    document.write("<img src='Easter.jpg' />"); 
} 
else { 
    document.write("<img src='StPatrick.jpg' />"); 
} 

Vous voudrez peut-être envisager une autre tactique à utiliser si document.write(), créant peut-être l'élément en utilisant new Image() et en l'ajoutant au DOM.

+0

Hmm, je n'ai jamais utilisé de nouvelle image ou ajouté le DOM mais je crois que je sais de quoi vous parlez, je vais y regarder et voir ce que je peux trouver. J'apprécie les conseils et les conseils Russ, merci. –

0

Vos citations doivent être corrigées. Vous avez besoin de guillemets imbriqués dans vos instructions document.wrote, mais vous utilisez les mêmes guillemets pour les guillemets externe et interne.

Lorsque le navigateur voit la deuxième guillemet, il ferme la chaîne, il est la construction, de sorte que vous obtenez une chaîne contenant <img src=

HTML prend en charge les guillemets simples et doube afin que vous puissiez les alterner pour éviter ce problème. Ou, vous échappez aux citations intérieures, mais c'est plus difficile à lire; alterner des guillemets simples et doubles est généralement tout ce dont vous avez besoin.

changement

document.write("<img src="Easter.jpg">") 

à

document.write("<img src='Easter.jpg'>") 
+0

Je vois ... Je vais utiliser cette méthode. Je vous remercie! –