JavaScript Cookie возвращает нулевые значения только в IE6 - PullRequest
1 голос
/ 17 июля 2009

У меня есть страница, где я беру значение из строки запроса и добавляю его в файл cookie. Это значение используется для пары различных элементов на странице. Если пользователь возвращается на страницу, а значение отсутствует в строке запроса, значение извлекается из файла cookie.

Я попытался выполнить свои собственные настройки и поиск файлов cookie в JavaScript, а также с помощью плагина jQuery Cookie (http://plugins.jquery.com/project/Cookie). Все работает без нареканий ... за исключением случаев, когда я тестирую его в IE6. IE7 и 8 в порядке но IE6 всегда возвращает нулевое значение для элементов, когда я пытаюсь извлечь их из файла cookie.

Я посмотрел информацию о файлах cookie в Firefox и не вижу ничего, кроме двух целочисленных значений, которые я установил.

Любые идеи о том, что может быть причиной этого в IE6?

UPDATE: Я взял тест за пределами моего кода в основной HTML. Разметка ниже. Те же результаты, когда он возвращает ноль в IE6 (IETester).

<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 Ответ

5 голосов
/ 17 июля 2009

Установлены ли на машине с IE 6 настройки безопасности для отклонения файлов cookie? В качестве альтернативы, если вы используете один из различных методов, которые, как предполагается, позволяют запускать несколько версий IE на одном компьютере, имейте в виду, что результаты не идеальны и часто приводят к сбою тонких аспектов браузера на одном или нескольких версии: например, см. этот комментарий на странице Tredosoft Multiple IE о сбое файлов cookie в IE 6.

...