Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为网站添加书签Javascript而不是jquery_Javascript_Html - Fatal编程技术网

为网站添加书签Javascript而不是jquery

为网站添加书签Javascript而不是jquery,javascript,html,Javascript,Html,我有下面的书签Javascript function bookmark(title, url) { if(document.all) { // ie window.external.AddFavorite(url, title); } else if(window.sidebar) { // firefox window.sidebar.addPanel(title, url, ""); } else if(window.opera &am

我有下面的书签Javascript

function bookmark(title, url) {
   if(document.all) { // ie
       window.external.AddFavorite(url, title);
   }
   else if(window.sidebar) { // firefox
      window.sidebar.addPanel(title, url, "");
  }
    else if(window.opera && window.print) { // opera
       var elem = document.createElement('a');
       elem.setAttribute('href',url);
       elem.setAttribute('title',title);
       elem.setAttribute('rel','sidebar');
       elem.click(); // this.title=document.title;
    }
}
和HTML

<a href="javascript:bookmark('title of the page', 'http://www.domain.com');" class="bookmark" >


问题是它只能在Internet Explorer中工作。不适用于firefox、opera和chrome。我还听说firefox已经弃用了window.sidebar.addPanel函数,有没有办法解决所有这些问题?请不要使用JQUERY。

以下是如何在没有JQUERY事件绑定的情况下使用来自的答案

function bookmark(title, href) {
    if (window.sidebar && window.sidebar.addPanel) { // Mozilla Firefox Bookmark
        window.sidebar.addPanel(title,href,'');
    } else if(window.external && ('AddFavorite' in window.external)) { // IE Favorite
        window.external.AddFavorite(href,title); 
    } else if(window.opera && window.print) { // Opera Hotlist
        this.title=title;
        return true;
    } else { // webkit - safari/chrome
        alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
    }
}

上述解决方案存在一些问题。

   window.sidebar.addPanel("", "","");
上述代码可能不适用于所有Mozilla Firefox版本。 所以我写了如下的博彩代码。 除了webkit-safari/chrome之外,它在所有浏览器中都能正常工作

添加如下所示的“a”标签

<a id="BookmarkMe" href="">Bookmark</a>

每个浏览器都有在其用户界面中添加书签的功能——那你为什么还要复制它呢?@CBroe,这样我就可以告诉用户提醒他可以为网站添加书签。而且要用一种简单的方式来做,比如一次点击,没有快捷键……有很多相关的问题似乎都是关于这个主题的。他们中没有人回答你的问题吗?@Barmar大多数人使用Jquery,也有一些使用Javascript,但没有解决我的问题。我试了很多。对于大多数浏览器,似乎都有非jQuery方法。但是它们看起来和你做的一样,所以我不知道为什么它对你不起作用。
$(function () {
            $('#BookmarkMe').click(function (e) {
                var bTitle = document.title, bUrl = window.location.href;
                if ($.browser.mozilla || $.browser.opera) { // Mozilla Firefox or Opera
                    if (window.sidebar.addPanel) {
                        e.preventDefault();
                        window.sidebar.addPanel(bTitle, bUrl, "");
                    }
                    else {
                        $('#BookmarkMe').attr("href", bUrl);
                        $('#BookmarkMe').attr("title", bTitle);
                        $('#BookmarkMe').attr("rel", "sidebar");
                    }
                } else if ($.browser.msie) { // IE Favorite
                    e.preventDefault();
                    window.external.AddFavorite(bUrl, bTitle);
                } else { // webkit - safari/chrome
                    e.preventDefault();
                    alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
                }
            });
        });