Javascript 用于刷新验证码的功能,适用于iPhone,不适用于桌面浏览器

Javascript 用于刷新验证码的功能,适用于iPhone,不适用于桌面浏览器,javascript,syntax,onclick,dom-events,onclicklistener,Javascript,Syntax,Onclick,Dom Events,Onclicklistener,这是我的页面,我有一个刷新验证码的功能(如果你点击“clicca qui”,它会改变图像)。我百分之百肯定它在几个月前就成功了,现在它没有任何改变。对函数的调用是。我注意到,虽然在iPhone上它起了作用。所以我认为这是一些不接受“javascript:”语法的浏览器的问题。然后我把它改成了(现在是“live”)。这并没有改变任何东西,在iPhone上仍然有效(图像更改),在桌面浏览器上也不会改变(IE和Firefox试用过) Firebug控制台什么也没说 发生了什么事?我似乎找不到原因,但在

这是我的页面,我有一个刷新验证码的功能(如果你点击“clicca qui”,它会改变图像)。我百分之百肯定它在几个月前就成功了,现在它没有任何改变。对函数的调用是
。我注意到,虽然在iPhone上它起了作用。所以我认为这是一些不接受“javascript:”语法的浏览器的问题。然后我把它改成了
(现在是“live”)。这并没有改变任何东西,在iPhone上仍然有效(图像更改),在桌面浏览器上也不会改变(IE和Firefox试用过)

Firebug控制台什么也没说


发生了什么事?

我似乎找不到原因,但在尝试获取类似于
document.images[4].src的src时,返回了一个空字符串。这只发生在FF,所以我在那里被难住了。但是,您可以使用
.getAttribute(“src”)
访问图像源,并使用
.setAttribute(“src”,“value”)
进行设置

请尝试以下代码:

function refreshCaptcha(){ 
  var img = document.images['captchaimg'];
  imgSrc = img.getAttribute("src");
  newImgSrc = imgSrc.substring(0,imgSrc.lastIndexOf("?"))+"?rand="+Math.random()*1000;
  img.setAttribute("src", newImgSrc);
}

此外,请不要链接到您的网站。链接到fiddle是可以的,但一旦你在网站上做了这些更改,你的问题将不再对社区有任何帮助

尝试
,例如在页面上的
javascript:
refreshCaptcha()
之间不留空格,在FF中作为属性访问src(与访问任何其他对象的方式相同)返回空字符串。运行
Object.keys(document.images['captchaimg'])
显示它是一个属性,但由于某些原因,它的值是一个空白字符串。但在我的示例中,我们正在访问images标记的style属性。因此,我们正在访问您可以在HTML中看到的字符串值。我只是不知道为什么src属性与src属性不同。您可以确保此新代码正常工作