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

时间:2013-09-13 01:40:02

标签: javascript javascript-events syntax onclick onclicklistener

Here是我的页面,我有一个功能来刷新验证码(如果你点击“clicca qui”它应该改变图像)。我百分之百确定它在几个月前有效,现在它不会没有我改变任何东西。对函数的调用是<a href="javascript: refreshCaptcha();">。我注意到虽然在iPhone上它有效。所以我认为这是某些浏览器不接受“javascript:”语法的问题。然后我将其更改为<a href="#" onclick="refreshCaptcha();return false;">(就像现在一样,“直播”)。这没有任何改变,仍然可以在iPhone上运行(图像更改),在桌面浏览器上没有变化(尝试使用IE和Firefox)。

Firebug控制台没有说什么。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

我似乎无法找到原因,但在尝试获取像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);
}

另外,请不要链接到您的网站。链接到小提琴是可以的,但只要您在网站上进行这些更改,您的问题将不再对社区有任何帮助。