>

JS通过Cookie判定页面是否为第一回展开,IE中JS类

- 编辑:正版管家婆马报彩图 -

JS通过Cookie判定页面是否为第一回展开,IE中JS类

废话不多说了,直接给大家贴代码了,本文写的不好还请各位大侠见谅。

IE中JS类调用问题
我在一个页面调用了6个JS类。 为什么在FF中js类之间调用都是正常的。但是在IE中 就调用不了?
例如。我有个localdata.js 是 读取 cookie的 在内部直接初始化 var LocalData = _LoacalData();
然后我有个类:mplayer.js 是播放器类。在web页面点击试听后 弹出播放器的时候 初始化 mplayer类 然后调用 cookie类 读取数据。。。问题就是FF 读取时没有问题的,IE读取有问题。。。
读取COOKIE 代码
[code="javascript"]
this.getCookie=function
{
var arg = key+"=";
var tem=document.cookie;
if(tem!=null)
{
var pos1 = tem.indexOf;
var pos2 = tem.indexOf;
if {return null;}
if {pos2=tem.length;}
tem=tem.substring((pos1+arg.length),pos2);
return unescape;
}
return "";
};
[/code]

JScript code:

调用cookie的代码
[code="javascript"]
$i("mlist_div_cont").innerHTML = "正在载入...";

function Cookie(key,value)
{
this.key=key;
if(value!=null)
{
this.value=escape(value);
}
this.expiresTime=null;
this.domain=null;
this.path="/";
this.secure=null;
}
Cookie.prototype.setValue=function(value){this.value=escape(value);}
Cookie.prototype.getValue=function(){return (this.value);}
Cookie.prototype.setExpiresTime=function(time){this.expiresTime=time;}
Cookie.prototype.getExpiresTime=function(){return this.expiresTime;}
Cookie.prototype.setDomain=function(domain){this.domain=domain;}
Cookie.prototype.getDomain=function(){return this.domain;}
Cookie.prototype.setPath=function(path){this.path=path;}
Cookie.prototype.getPath=function(){return this.path;}
Cookie.prototype.Write=function(v)
{
if(v!=null)
{
this.setValue(v);
}
var ck=this.key+"="+this.value;
if(this.expiresTime!=null)
{
try
{
ck+=";expires="+this.expiresTime.toUTCString();;
}
catch(err)
{
alert("expiresTime参数错误");
}
}
if(this.domain!=null)
{
ck+=";domain="+this.domain;
}
if(this.path!=null)
{
ck+=";path="+this.path;
}
if(this.secure!=null)
{
ck+=";secure";
}
document.cookie=ck;
}
Cookie.prototype.Read=function()
{
try
{
var cks=document.cookie.split("; ");
var i=0;
for(i=0;i <cks.length;i++)
{
var ck=cks[i];
var fields=ck.split("=");
if(fields[0]==this.key)
{
this.value=fields[1];
return (this.value);
}
}
return null;
}
catch(err)
{
alert("cookie读取错误");
return null;
}
}

var str_tmp = LocalData.get; //这里是读取COOKIE 我在localdata 设置了一个flag 在FF中可以访问,在IE中无法访问。所以我怀疑就是LocalData 没有被引用到。但是我不知道为什么,也不知道怎么改。-_-!!!
[/code]

HTML code:

浏览器的兼容问题太头痛了。。。FF出问题 还可以调试。。。IE 出问题了,不报错,不出来,完全就一非暴力不合作运动
新手啊。分不多。各位大大 帮忙 想想办法...
[b]问题补充:[/b]
我的那个 localdata类 已经初始化了,别的都可以调用。。。
而且 JS加载也是 先加载的localdata这个类。。。还有没有什么办法?
我这里上不了网(除了javaeye和blogjava 、csdn)。下不了东西。。。
[b]问题补充:[/b]
我试过了。alert 可以出来。。。alert 出不来。。。而且我在localdata 里面也 加了 alert(); 当alert 完成之后 localdata 里面的也没反应。
[b]问题补充:[/b]
[code="java"]
function _LocalData()
{
xxx;
}
var LocalData = new _LocalData();
[/code]

<script type="text/javascript" src="Cookie.js"></script>
<script type="text/javascript" language="javascript">
window.onload=function(){
var ck=new Cookie("HasLoaded"); //每个页面的new Cookie名HasLoaded不能相同
if(ck.Read()==null){//未加载过,Cookie内容为空
alert("首次打开页面");
//设置保存时间
var dd = new Date();
dd = new Date(dd.getYear() + 1900, dd.getMonth(), dd.getDate());
dd.setDate(dd.getDate() + 365);
ck.setExpiresTime(dd);
ck.Write("true"); //设置Cookie。只要IE不关闭,Cookie就一直存在
}
else{//Cookie存在,表示页面是被刷新的
alert("页面刷新");
}
}
</script>

然后在别的js中调用。。。
难道不是这样写?
[b]问题补充:[/b]
我似乎找到点什么。。
我在cookie 最后加了个 path=/ 这样的话 在删除所有后 不用重启浏览器都可以 重新写入cookie 在FF是可以通过的。但是在IE中 读不出来数据。。请问下 谁知道这个原因?

以上所述是小编给大家分享JS通过Cookie判断页面是否为首次打开的相关内容,希望对大家有所帮助。

您可能感兴趣的文章:

  • javascript创建cookie、读取cookie
  • JS设置cookie、读取cookie
  • javascript cookie的简单应用
  • 通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
  • JS设置cookie、读取cookie、删除cookie
  • JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面

本文由网络计算发布,转载请注明来源:JS通过Cookie判定页面是否为第一回展开,IE中JS类