문제

특정 CSS 클래스와의 링크의 경우 라디오 버튼 그룹에서 사용자의 선택을 기반으로 동일한 창, 새 창 또는 팝업 (OnClick 사용)에서 링크가 열려 있는지 여부를 제어하고 싶습니다. 그런 다음 해당 선택을 쿠키 (모두 jQuery를 사용하여)에 저장하십시오. 누구든지 이것을 달성하는 방법을 알고 있습니까?

도움이 되었습니까?

해결책

이것은 아마 내가 할 수있는 방법입니다 ... (당신은 필요할 것입니다. jQuery 쿠키 플러그인):

<script language="javascript">
$(function() {
    if($.cookie('link_pref')) {
    var link_pref = $.cookie('link_pref');
        $('#link_options_form :radio[value="'+ link_pref+'"]')
        .attr('checked','checked');
    }
    $.cookie('link_pref',$('#link_options_form :radio:checked').val(), {expires: 0});
    $('#link_options_form :radio').unbind('click').bind('click',function() {
         $.cookie('link_pref', $(this).val(), {expires: 0});
    });
    $('a').unbind('click').bind('click',function() {
        var link_pref = $.cookie('link_pref');
        var href = $(this).attr('href');
        var link_txt = $(this).text();
        switch(link_pref) {
            case 'new':
                $(this).attr('target','_blank');
                return true;
            case 'pop':
                window.open(href,link_txt,'width=640,height=480,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
                return false;
            case 'greybox':
                // Other options found here: 
                // http://orangoo.com/labs/greybox/advance_usage.html
                GB_show(link_txt, href);
                return false;
            default:
                $(this).attr('target','_self');
                return true;
        }
    });
});
</script>

<form id="link_options_form">
    <label><input type="radio" name="link_options" value="same" /> Open in Same Window</label>
    <label><input type="radio" name="link_options" value="new" /> Open in New Window</label>
    <label><input type="radio" name="link_options" value="pop" /> Open in Pop-Up Window</label>
    <label><input type="radio" name="link_options" value="greybox" /> Open in Greybox</label>
</form>

편집하다: 먼저 테스트하지 않아서 죄송합니다. 나는 거기에 약간의 오타가 있었고 쿠키를 시작하도록 설정하는 것을 잊었습니다 (죄송합니다). 나는 그것을 테스트했고 이제 당신의 HTML과 함께 작동합니다. 위의 새로 편집 된 코드를 사용하십시오. ;-)

편집 2 : 어떤 이유로 든 올바른 것을 사용하지 않는 경우를 대비하여 쿠키 플러그인에 직접 링크를 추가했습니다.

편집 3 : 개인적으로, 나는 JavaScript에서 확인 된대로 라디오 버튼을 설정하지 않을 것입니다 ... 내가 믿는 서버 측 언어로 동일한 쿠키에 액세스 할 수 있습니다. 그러나 새로 편집 한 코드에서 작동하는 방법을 제공했습니다.

편집 4 : 확인 된 라디오 버튼 버그의 초기 설정이 수정되었습니다. 이번에는 정말로 실제로 작동해야합니다. 진짜. O_0

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top