Javascript浏览器问题

时间:2010-03-10 19:56:03

标签: javascript image

我是javascript的新手,我的脚本旨在显示一个图像或另一个图像,有50/50的机会。它在safari中工作但在firefox中没有,这为我正在设计的网站削减了太多客户。
任何帮助将不胜感激,特别是如果有人可以说如何确保它适用于所有浏览器。否则我可以弄清楚如何让它在firefox或其他一些组合中忽略它。

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

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

哦,实际代码有&问:而不是“它需要在哪里,以防你想知道它是否使它不起作用。它确实在safari中工作 - 只是不在firefox或camino。

3 个答案:

答案 0 :(得分:2)

你需要逃避内部引号:

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

在由"终止的字符串中,如果要插入双引号,则需要在其前面加\来“转义”它

编辑:我刚刚看到您的编辑,其中您说实际代码中包含&quot;。如果你的代码是:

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

那不行。它会写字:

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

&quot;更改为\"

答案 1 :(得分:2)

尝试

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

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

您可能想要考虑使用document.write()的不同策略,可能使用new Image()创建元素并将其附加到DOM。

答案 2 :(得分:0)

您的报价需要修复。你需要在document.wrote语句中使用嵌套引号,但是你对外引号和内引号使用相同的引号。

当浏览器看到第二个双引号时,它会关闭它正在构建的字符串,因此您会得到一个包含<img src=的字符串

HTML支持单引号和双引号,因此您可以替换它们以避免此问题。或者,你逃脱了内在的引语,但这更难以阅读;通常只需要交替的单引号和双引号。

更改

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

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