js代码,火狐浏览器不能运行,哪位高手能帮我改下

这是JS读取COOKIE的方法,IE下能运行,火狐就运行不了,如题

function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]);
return null;
}

你如果是要在js使用Cookies的值,我早就教过你用PHP输出到JS变量里面,何必这么麻烦。
var cookieValue="<?php echo $_COOKIE["cookieName"] ?>";
在下文的JS中不就可以使用这个全局变量了吗 这样也不存在浏览器兼容性问题。追问

我是想不在页面加载的时候刷新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().文件发你邮箱了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-08-10
  您好!很高兴为您答疑!

  js使用Cookies的值,直接这样就可以:
var cookieValue="<?php echo $_COOKIE["cookieName"] ?>";
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。本回答被网友采纳
第2个回答  2011-03-09
你怎么写的设置cookie,以下代码测试IE8、FF、chrome一切正常:
<script>
//写cookies函数
function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
</script>
<input type="button" onclick="SetCookie('adebug', 'www.ade-bug.com');" value="set" />
<input type="button" onclick="alert(getCookie('adebug'));" value="get" />追问

设置COOKIE是在PHP文件里设置的,不用JS,setcookie("abc",$string,time()+3600*3600);

追答

我倒,我这也一样的,
js代码同上,测试浏览器也是上面三个

其实完全可以用php自己取

var testcookie = '';

追问

...既然一样的,那你FF浏览器能 getCookie('username')  能取到值,我就是取不到,about:config 里设置的缘故????
我设置的这个COOKIE是在一直刷新的,不是只加载一次的

相似回答