본문으로 바로가기

jQuery 크로스브라우징 즐겨찾기 버튼

category 카테고리 없음 2019. 11. 22. 15:44
반응형

 

[ 브라우저 지원현황 ]

- IE, Firefox : 즐겨찾기 추가 기능

- Chrome, Safari, Opera : 단축키(Ctrl+D) 알림

[ HTML ]

<a href\="#" id\="favorite" title\="즐겨찾기 추가"\>즐겨찾기에 추가</a\>

[ Javascript ]

$(document).ready(function() {
    $('#favorite').on('click', function(e) {
        var bookmarkURL = window.location.href;
        var bookmarkTitle = document.title;
        var triggerDefault = false;

        if (window.sidebar && window.sidebar.addPanel) {
            // Firefox version < 23
            window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
        } else if ((window.sidebar && (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)) || (window.opera && window.print)) {
            // Firefox version >= 23 and Opera Hotlist
            var $this = $(this);
            $this.attr('href', bookmarkURL);
            $this.attr('title', bookmarkTitle);
            $this.attr('rel', 'sidebar');
            $this.off(e);
            triggerDefault = true;
        } else if (window.external && ('AddFavorite' in window.external)) {
            // IE Favorite
            window.external.AddFavorite(bookmarkURL, bookmarkTitle);
        } else {
            // WebKit - Safari/Chrome
            alert((navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Cmd' : 'Ctrl') + '+D 키를 눌러 즐겨찾기에 등록하실 수 있습니다.');
        }

        return triggerDefault;
    });
});

상위 URL 적용 시 3번 라인 수정

var bookmarkURL \= parent.location.href;

triggerDefault return하는건 함수로 쓸때 return안하고 조건으로 true일 때 alert 띄워주면 될듯하다

출처 : http://webdir.tistory.com/454

반응형