JavaScript Cookie仅在IE6中返回空值

时间:2009-07-17 14:34:50

标签: javascript cookies internet-explorer-6

我有一个页面,我从查询字符串中获取一个值并将其添加到cookie中。该值用于页面上的几个不同项目。如果用户返回页面并且该值不在查询字符串中,则会从cookie中撤回该值。

我已经尝试在JavaScript中进行自己的cookie设置和检索以及现在使用jQuery Cookie插件(http://plugins.jquery.com/project/Cookie)。一切都完美无瑕......除非我在IE6中测试它。 IE7和8很好,但是当我尝试从cookie中检索它们时,IE6总是为这些项返回一个空值。

我查看了Firefox中的cookie信息,我没有看到超出我设置的2个整数值的任何内容。

有关IE6中可能导致此问题的任何想法吗?

更新: 我把我的代码之外的测试变成了一个基本的html。下面的标记。在IE6(IETester)中返回null的结果相同。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
    <script type="text/javascript" src="Scripts/jquery-1.3.2.js"></script>
    <script type="text/javascript" src="Scripts/jquery.cookie.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
           var testId = GetQueryStringValue("test");

           if (testId == "")
           {
                testId = $.cookie("test");
                alert(testId);
           } 
           else
           {
                $.cookie("test", testId);
                alert("Test set");
           }

            document.write(testId);
        });

        function GetQueryStringValue(name)
        {    
            var regex = new RegExp("[?&]" + name + "(?:=([^&]*))?","i");   
            var tmpURL = window.location.href;    
            var results = regex.exec( tmpURL );    

            if (results == null)
            {
                return ""; 
            }
            else
            {
                return results[1];
            }
        }
    </script>
</head>
<body>

</body>
</html>

1 个答案:

答案 0 :(得分:5)

运行IE 6的计算机是否将其安全设置设置为拒绝cookie?或者,如果您使用的各种技术之一应该允许您在同一台计算机上运行多个版本的IE,请注意结果并不完美,并且通常会导致浏览器的一些细微方面在一个或多个版本:例如,请参阅this comment on Tredosoft's Multiple IE page有关在IE 6中失败的cookie。