2012-07-26 2 views
2

잘 모르겠습니다. 페이지의 링크에 jQuery 쿠키를 설정하고 새 창을 엽니 다. 따라서 창 1에서 쿠키 값은 XXX으로 설정됩니다. 사용자가 윈도우에서 변경된 내용을 창 2는 사용자가 XYX 즉 어떤이 쿠키 값을 업데이트 할 수있는 페이지, YYY새 창에서 jquery 쿠키 값을 기억하십시오.

그래서 내가 함께 창 1의 쿠키 값을 업데이트 할 수 있도록하려면 2.

지금은 $.mycookie(test, xxx)$.mycookie(test, yyy)의 두 창이 있습니다. 사용자가 창 2를 닫으면 그의 변화는 창에 업데이트되지 않습니다 1.

답변

1

명시 적으로 도메인에있는 모든 경로에 대한 쿠키를 사용할 수 있도록 경로가 설정되어 있는지 확인하려면 다음

$.cookie("example", "foo", { path: '/' }); 

가로 제한하려면 특정 경로 :

'/'로 설정하면 전체 도메인에서 쿠키를 사용할 수 있습니다. '/ foo /'로 설정하면 쿠키는/foo/디렉토리 및 도메인의/foo/bar /와 같은 모든 하위 디렉토리에서만 사용할 수 있습니다. 기본값은 쿠키가 설정된 현재 디렉토리입니다.

+0

그래 난 이미 '/'내 경로를 설정하지만, 윈도우에서 내 쿠키의 값을 업데이트하지 않습니다 창 2에서 내 쿠키 값을 변경하여 1 – user1010701

+0

@ user1010701 쿠키가 업데이트되지 않은 이유를 모르겠습니다. 아마도 쿠키가 만료되었을 것입니다. 시도해 볼 수 있습니다 : $ .cookie ('example', 'value', {expires : 14, path : '/'}) ;, 이것은 만료를 +14 일로 설정합니다. –

+0

자식 창을 닫을 때 부모 창을 새로 고침해야하므로 window.opener.location.reload(); 내 쿠키를 새로 고침하려면 작동합니까 – user1010701

0

정확한지, 오프너 창을 새로 고쳐야합니다.

Window-1 via java-window (팝업) Window-2 (팝업)를 열면이 팝업에는 닫을 때 언로드 이벤트가 발생하거나 부모 창을 새로 고치는 버튼/링크를 클릭 할 때 호출되는 함수가 있어야합니다. . 쿠키를 변경하는 방식은 새로 고침 후에 만 ​​활성화 할 수 있습니다.

간단한 윈도우-2 예 :

<script> 
function whatever() { 
    $.cookie("test", $('input[name=cookievalue]').val()); 
    if (window.opener != null) { 
     window.opener.location.reload(); 
     window.close(); 
    } 
} 

$('button[name=clicker"]').bind('click', function(){ 
    whatever(); 
}); 

/* optionall you can also do an unload event, 
* but you should probably check if you ran whatever() more then 
* once and not run it a second time. 
*/ 
$(window).unload(function(){ 
    whatever(); 
}); 
</script> 

<input type="text" value="" name="cookievalue"> 
<button name="clicker">Change Cookie and close</button> 
+0

감사합니다. Anthony, 매우 유용합니다.이 기능을 사용하려고합니다. 내가 어떻게 작동하는지 알려줍니다. – user1010701