Javascript 加上“;书签页;角形按钮

Javascript 加上“;书签页;角形按钮,javascript,angularjs,bookmarks,Javascript,Angularjs,Bookmarks,我已经看到了一些js代码片段,可以为页面添加书签,如下所示: 基本上,他们根据浏览器调用不同的js方法,在ff中动态创建一个带有rel=sidebar的href,或者在浏览器不支持的情况下提示用户手动添加它 我想知道在angular应用程序中实现这一点最干净的方法是什么?我搜索了一个可以实现该功能的指令,但没有找到任何指令。下面是一个实现该功能的简单指令: angular.module("myApp", []) .directive("bookmarkPage", function ($

我已经看到了一些js代码片段,可以为页面添加书签,如下所示:

基本上,他们根据浏览器调用不同的js方法,在ff中动态创建一个带有rel=sidebar的href,或者在浏览器不支持的情况下提示用户手动添加它


我想知道在angular应用程序中实现这一点最干净的方法是什么?我搜索了一个可以实现该功能的指令,但没有找到任何指令。

下面是一个实现该功能的简单指令:

angular.module("myApp", [])
    .directive("bookmarkPage", function ($window, $location) {
    return {
        restrict: "AEC",
        link: function (scope, element, attrs) {
            $(element).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('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Cmd' : 'Ctrl') + '+D to bookmark this page.');
                }

                return triggerDefault;
            });
        }

    }
});

非常感谢,它在chrome上运行正常(也就是说,它会显示一个提示,告诉我按ctrl-d),但在firefox上它会给我以下角度错误:“TypeError:a.split不是一个函数”(我还必须添加一个“var$=angular.element;”))不。美元和angular.element都不一样。
  <a id="bookmark-this" href="#" title="Bookmark This Page" bookmark-page>Bookmark This Page</a>