我正在尝试进行重定向,如果存在cookie,它可以在Chrome和Firefox上运行,但不能在Opera,IE和Safari上运行。
function listenCookieChange() {
var intervalHolder = setInterval(function() {
if(getCookie('foo')){
clearInterval(intervalHolder);
window.location.href = 'http://XXXXXXXXXXXXXX/inscription2.php';
}
}, 100);
}
listenCookieChange();
cookie是在浏览器上设置的,因此问题并非出在那部分。
提前致谢
编辑:这是getCookie的代码
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
最佳答案
找不到任何故障。已经在IE7-IE9和Opera 10-11上测试了您的脚本。
function getCookie(c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
function listenCookieChange() {
var intervalHolder = setInterval(function() {
if (getCookie('foo')) {
clearInterval(intervalHolder);
//window.location.href = 'http://XXXXXXXXXXXXXX/inscription2.php';
alert('true');
}
}, 100);
}
listenCookieChange();
document.cookie = 'foo = true';
关于javascript - setInterval或window.location在Opera,IE和Safari中无法正常使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11886511/