gpt4 book ai didi

javascript - 添加一个 "bookmark page"带 Angular 按钮

转载 作者:行者123 更新时间:2023-12-02 16:16:02 25 4
gpt4 key购买 nike

我见过几个为页面添加书签的 js 片段,例如:http://www.thewebflash.com/2014/12/how-to-add-cross-browser-add-to.html

基本上,它们根据浏览器调用不同的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;
});
}

}
});

您仍然可以将那些 windowwindow.loaction 替换为 $window$location 来实现易于测试。

在 HTML 中:

  <a id="bookmark-this" href="#" title="Bookmark This Page" bookmark-page>Bookmark This Page</a>

关于javascript - 添加一个 "bookmark page"带 Angular 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com