这是JS读取COOKIE的方法,IE下能运行,火狐就运行不了,如题
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]);
return null;
}
我是想不在页面加载的时候刷新COOKIE,这个COOKIE是用来保存验证码字符串的,能刷新,只在局部刷新,一样的代码,楼上的说他FF测试能通过,为什么我的火狐没反应.....
追答如果只是想刷新保存验证码字符串的cookie的话,不用这么麻烦,直接让显示验证码图片的那个路径按指定时间刷新次就可以了。
function refreshVerty(timeset)
{
var obj=document.getElementById("vertyCodeImg");
var d=new Date();
obj.src="vertyCode.php?t="+d.toString(38);
setTimeout("refreshVerty()",timeset);
}
refreshVerty(5000);
这样就可以实现刷新该Cookie的值,而且不会刷新页面。
....刚测试,我原来的代码火狐浏览器又能读取到COOKIE了,但新问题又来了
document.all("a").src="./index.php?"+Math.random();
刷新图片的这句代码没反应了;
var a=getCookie("abc");
var b=document.getElementById("yanzheng").value;
alert("ssssss");
if(a == b){
document.all("fff").innerHTML="验证码正确!";
alert("ssssss");
}
这其中的 a==b比较也实效了,在火狐下,我在IE下还是正常有作用的啊,头大了
document.all("a").src="./index.php?r="+Math.random();
这个语句刷新cookie的值,但是你下面a=getCookie("abc")是否是获取的刷新后的cookie值,这个不好说。你先改成这样试下看,如果不行你把你要实现什么功能说出来帮你参考下。
我将文件发你邮箱吧,功能在IE下是全实现了,去火狐浏览器测试了下,JS跑不起来,麻烦就来了- -
追答问题解决了,我在IE6/FF下测试都通过,有两个问题:
1.php页面需要将setcookie在生成图片之前调用。
2.document.all为IE专有,将其替换为document.getElementById().文件发你邮箱了。
设置COOKIE是在PHP文件里设置的,不用JS,setcookie("abc",$string,time()+3600*3600);
追答我倒,我这也一样的,
js代码同上,测试浏览器也是上面三个
其实完全可以用php自己取
var testcookie = '';
...既然一样的,那你FF浏览器能 getCookie('username') 能取到值,我就是取不到,about:config 里设置的缘故????
我设置的这个COOKIE是在一直刷新的,不是只加载一次的