2011-11-02 51 views
1

出于测试目的,我希望能够根据需要创建cookie。用输入字段创建cookie接口? (多个值)和来自任何域?

我使用的cookies格式如下: A0A60B1381:ASD887DSFFSDF:SD8F89SD7F89SD7 使用任何通用名称。

我需要读取cookie的当前值(如果存在的话)(或创建一个具有该名称的cookie),将值分割为单独的输入字段,能够编辑这些输入字段并写入cookie。 (如果需要的话可能会破坏cookie的当前值)。

什么是最好的方法来解决这个问题?

UPDATE:

感谢阿卜杜拉,我有这样的代码了 - 但是,它不是来自其他领域的cookies拉动。因此,我需要它从任何域中提取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> 

回答

0

使用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 

更新

我想你想编辑在运行中的cookie,这应该工作:

// 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 
}); 
+0

看起来不错。我假设这一点:“arr [0] =”NEW_VAL“;”是我将拉出每个值的位置,将值写入输入字段,然后将它们拉回到一起。有关如何实现这一目标的任何建议? – Jason

+0

看到更新 - 试图从不同的域获得价值 – Jason

+0

如果你说你想要在domain1加载的JavaScript能够访问domain2的cookie,那么由于浏览器安全限制,这是不可能的。 –