Создать интерфейс cookie с полями ввода?(несколько значений) и из какого домена? - PullRequest
1 голос
/ 02 ноября 2011

В целях тестирования я хочу иметь возможность создавать файлы cookie так, как они мне нужны.

Используемые файлы cookie имеют следующий формат: A0A60B1381: ASD887DSFFSDF: SD8F89SD7F89SD7 с любым родовым именем.

Мне нужно прочитать текущие значения файла cookie, если он существует (или создать файл cookie с таким именем), разделить значения на отдельные поля ввода, иметь возможность редактировать эти поля ввода и записать файл cookie. (и, возможно, при необходимости уничтожить текущее значение cookie).

Как лучше всего подойти к этому?

UPDATE:

Благодаря Абдулле, у меня сейчас есть этот код - однако он не загружает куки с других доменов. Поэтому мне нужно, чтобы он извлек cookie - «мусор» из любого домена и записал его в домены с датой истечения срока действия. Как бы я это сделал в этом контексте?

 <script>
        $(document).ready(function() {

        var val = $.cookie('junk');
        var arr = val.split(':');
             $('#Cookie_input0').val(arr[0]); // set value of input element
            $('#Cookie_input1').val(arr[1]); // set value of input element
            $('#Cookie_input2').val(arr[2]); // set value of input element
            $('#Cookie_input3').val(arr[3]); // set value of input element
            $('#Cookie_input4').val(arr[4]); // set value of input element
            $('#Cookie_input5').val(arr[5]); // set value of input element
        $('#Submit').click(function() {
            //recreate arr from input elements
            var arr = [];
            $('input.cookieJr').each(function() {
                arr.push($(this).val());
            });
            // set cookie
            var val = arr.join(':');
            $.cookie('junk', val); // write the cookie back out
        });
        });

    </script>

И

<form name="cookieValues">
    <input id="Cookie_input0" class="cookieJr" type="text" />
    <input id="Cookie_input1" class="cookieJr" type="text" />
    <input id="Cookie_input2" class="cookieJr" type="text" />
    <input id="Cookie_input3" class="cookieJr" type="text" />
    <input id="Cookie_input4" class="cookieJr" type="text" />
    <input id="Cookie_input5" class="cookieJr" type="text" />
    <input type="submit" value="Submit" id="Submit"/>

</form>

1 Ответ

0 голосов
/ 02 ноября 2011

Используйте jquery.cookie.js :

$.cookie('the_cookie'); // gets the cookie
$.cookie('the_cookie', 'A0A60B1381:ASD887DSFFSDF:SD8F89SD7F89SD7'); // sets the cookie

Например:

var val = $.cookie('the_cookie') || 'A0A60B1381:ASD887DSFFSDF:SD8F89SD7F89SD7';
var arr = val.split(':');
arr[0] = "NEW_VAL";
val = arr.join(':');
$.cookie('the_cookie', val); // write the cookie back out

Обновление

Я думаю, что вы пытаетесь редактировать куки на лету, это должно работать:

// after reading cookie as described above, should be inside a $(document).ready()
$('#ID_OF_INPUT_ELEMENT').val(arr[0]); // set value of input element

// once input element has been set and some 'submit' button clicked
$('#ID_OF_SUBMIT_BUTTON').click(function() {
    //recreate arr from input elements
    var arr = [];
    $('input.some_class_they_all_share').each(function() {
        arr.push($(this).val());
    });
    // set cookie
    var val = arr.join(':');
    $.cookie('the_cookie', val); // write the cookie back out
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...