4887王中王鉄算盘奖结果函数用法介绍,新发现一

来源:http://www.smjxgs.com 作者:4887王中王鉄算盘奖结果 人气:77 发布时间:2019-08-11
摘要:本文章来给大家介绍IE6、IE7、IE8 无法正常读取 cookie的解决方法,有需要了解的同学可进入参考。 setcookie() 函数向客户端发送一个 HTTP cookie。 你好,我们已经加 为友情链接了, 下面这

本文章来给大家介绍IE6、IE7、IE8 无法正常读取 cookie 的解决方法,有需要了解的同学可进入参考。

setcookie() 函数向客户端发送一个 HTTP cookie。

你好,我们已经加 为友情链接了,
下面这个网页里最后一个链接是你们的

我们的GOOGLE PR为4,链我们请使用下面代码,谢谢
<a href="铂金钻戒网">;
于是我打开其网址,首页自动跳转到index.html这页,我在这页没找到我链接,就关了。然后在这里用它的很长的网址点了一下,发现在友情链接最下面一个出现了biyan.org的链接,怎么回事?我刚才看明明没有!
于是再单独访问这个地址,有我的链接。
查看一下原代码:最后一个链接是用了这段代码
引用
<script language="javascript">document.write(showc("result"));</script>
就是点了QQ邮箱里的链接地址,把参数传递过去,显示了你的网站。showc这个js函数写的还真煞费苦心。
在此暴光一下这站,也提醒大家做链接时,不要只看页面上是否已有链接,还是查看一下源文件搜索网址看看有没有的好:)
实现原理就是通过php写入cookies然后客户端用js获取cookies的连接。
客户端代码:

原因分析

cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。

复制代码 代码如下:

很正常的写完了 JavaScript 代码,测试都已经通过,在 IE10 的 IE7、8、9 渲染模式下也测试通过。这时候,客户反馈在 XP 下的 IE8 有问题:初次登陆无法显示默认皮肤、点击切换刷新之后无法显示切换后的皮肤。

cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 "name",会自动创建名为 $user 的变量,包含 cookie 的值。

<SCRIPT language=javascript>
function createc(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() (days*24*60*60*1000));
var expires = "; expires=" date.toGMTString();
}
else var expires = "";
document.cookie = name "=" escape(value) expires "; path=/";
}
function readc(name) {
var nameEQ = name "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i ) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return unescape(c.substring(nameEQ.length,c.length));
}
return null;
}
function showc(name) {
value = readc(name);
if ((value == null) || (value == "null")) return "";
return value;
}
function addc(name,value,days) {
if (readc(name) != null) {
var oldvalue = readc(name);
var newvalue = oldvalue "," value;
}
else var newvalue = value;
createc(name,newvalue,days);
}
</SCRIPT>

因为是通过 cookie 来判断是否显示默认皮肤还是上次用户选择的皮肤,所以很理所当然就想到了无法读取 cookie 。启动 VMware 虚拟机,打开 IE8 和 IE Developer ToolBar 工具进行调试,发现点击之后 cookie 已经成功的创建,但是代码无法执行,使用控制台看了一下问题,原来是不支持 console 。

必须在任何其他输出发送前对 cookie 进行赋值。

为友情链接了, 下面这个网页里最后一个链接是你们的 ...

XP 下的 IE 浏览器不支持 console 命令
console 命令是控制台命令,用来调试 JavaScript 代码用的,通常使用 console.log() 函数来代替 alert() 来迅速得到某变量的内容等。由于 XP 下的 IE 不支持 console,导致后续代码无法运行。

如果成功,则该函数返回 true,否则返回 false。

解决方法就是删掉所有调试用的语句,这时候已经可以显示默认的皮肤样式了。

语法
setcookie(name,value,expire,path,domain,secure)

XP 下的 IE 浏览器不支持某些创建 cookie 的语句
这里之所以说某些,是因为我也不知道哪句代码写的不完善。当我使用最基础的 alert(document.cookie) 返回所有的 cookie 内容时,返回值为空,使用 cookie 读取函数读取某值的时候,返回 undefined 。而在其他浏览器中都可以正常返回。

而奇怪的地方在于,我使用 IE developer toolbar 调试的时候,可以看到当前浏览器下面有 cookie 值。最初我以为是 cookie 读取函数写的有问题,因为毕竟有 cookie 的内容却读取不出来。前后换了 5 个不同写法的 cookie 读取函数。后来一想不对,因为使用 alert(document.cookie) 也无法返回任何内容,IE 不会连 document.cookie 都不支持吧?!难道是因为 cookie 生成函数?

 代码如下

这时候,客户给了个功能类似的示例网站,我打开测试了一下功能正常。既然别人的正常,肯定能实现。我阅读了一下它的代码,换肤功能使用的 styleswitcher.js 这个 JS 插件做出来的。由于实现步骤与现有网站不符,我无法使用这个插件整合,只能把它的生成 cookie 、读取 cookie 的函数抠下来用。代码如下:

makecookie('111','www.111cn.net');
//清除cookie
clearcookies();

 代码如下

//下面兴一个支持二级域名cookie函数吧。

复制代码

function setcookielive($name, $value='', $expire=0, $path='', $domain='', $secure=false, $httponly=false) {
    //set a cookie as usual, but also add it to $_cookie so the current page load has access
    $_cookie[$name] = $value;
    return setcookie($name,$value,$expire,$path,$domain,$secure,$httponly);
}
//调用方法

function readCookie(name) {
  var nameEQ = name "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i ) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return false;
}

setcookielive('webab','111cn',time() 86000,'/','111cn.net');

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() (days*24*60*60*1000));
    var expires = "; expires=" date.toGMTString();
  }
  else expires = "";
  document.cookie = name "=" value expires "; path=/";
}

//一入门级cookie设置方法

无法正常读取 cookie 的解决方法,有需要了解的同学可进入参考。 原因分析 很正常的写完了 JavaScript 代码,...

setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_cookie['cookie'])) {
    foreach ($_cookie['cookie'] as $name => $value) {
        echo "$name : $value <br />n";
    }
}

js获取 cookie方法

 代码如下

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<script type="text/javascript">
//get cookie
function getCookie(name) {
     var nameEQ = name "=";
     var ca = document.cookie.split(';');
     for(var i=0;i < ca.length;i ) {
         var c = ca[i];
         while (c.charAt(0)==' ') {
             c = c.substring(1,c.length);
         }
         if (c.indexOf(nameEQ) == 0) {
             return unescape(c.substring(nameEQ.length,c.length));
         }
     }
     return false;
}

//clear cookie
function clearCookie(name) {
    setCookie(name, "", -1);
}

//set cookie
function setCookie(name, value, seconds) {
     seconds = seconds || 0;
     var expires = "";
     if (seconds != 0 ) {
         var date = new Date();
         date.setTime(date.getTime() (seconds*1000));
         expires = "; expires=" date.toGMTString();
     }
     document.cookie = name "=" escape(value) expires "; path=/";
}
alert(getCookie('test2'));
</script>
</body>
</html>

本文由4887王中王鉄算盘奖结果发布于4887王中王鉄算盘奖结果,转载请注明出处:4887王中王鉄算盘奖结果函数用法介绍,新发现一

关键词:

最火资讯