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