Javascript 创建带有输入字段的cookie接口?(多个值)和来自任何域?
出于测试目的,我希望能够根据需要创建cookie 我使用的cookies的格式如下: A0A60B1381:ASD887DSFFSDF:SD8F89SD7F89SD7 使用任何通用名称 如果cookie存在,我需要读取它的当前值(或者创建一个具有该名称的cookie),将值拆分为单独的输入字段,能够编辑这些输入字段,并写入cookie。(如果需要,可能会销毁cookie的当前值) 最好的方法是什么 更新: 多亏了Abdullah,我现在有了这段代码——但是,它并没有从其他域获取cookie。因此,我需要它从任何域中提取cookie-“垃圾”,并跨域写入它,并带有过期日期。在这种情况下,我该怎么做Javascript 创建带有输入字段的cookie接口?(多个值)和来自任何域?,javascript,jquery,cookies,Javascript,Jquery,Cookies,出于测试目的,我希望能够根据需要创建cookie 我使用的cookies的格式如下: A0A60B1381:ASD887DSFFSDF:SD8F89SD7F89SD7 使用任何通用名称 如果cookie存在,我需要读取它的当前值(或者创建一个具有该名称的cookie),将值拆分为单独的输入字段,能够编辑这些输入字段,并写入cookie。(如果需要,可能会销毁cookie的当前值) 最好的方法是什么 更新: 多亏了Abdullah,我现在有了这段代码——但是,它并没有从其他域获取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>
$(文档).ready(函数(){
var val=$.cookie(“垃圾”);
var arr=val.split(“:”);
$('#Cookie_input0').val(arr[0]);//设置输入元素的值
$('#Cookie_input1').val(arr[1]);//设置输入元素的值
$('#Cookie_input2').val(arr[2]);//设置输入元素的值
$('#Cookie_input3').val(arr[3]);//设置输入元素的值
$('#Cookie_input4').val(arr[4]);//设置输入元素的值
$('#Cookie_input5').val(arr[5]);//设置输入元素的值
$(“#提交”)。单击(函数(){
//从输入元素重新创建arr
var-arr=[];
$('input.cookieJr')。每个(函数(){
arr.push($(this.val());
});
//设置cookie
var val=arr.join(“:”);
$.cookie('junk',val);//将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
});
看起来不错。我假设这一位:“arr[0]=“NEW_VAL”;“是我将拉出每个值,将值写入输入字段,然后将它们拉回到一起的地方。关于如何实现这一点有什么建议吗?如果你说你希望加载在domain1中的javascript能够从domain2访问cookies,那么由于浏览器安全限制,这是不可能的。
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
});