1

次のブックマーク 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;
    }
}

AND 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 は使用しないでください。

4

2 に答える 2

0

上記の解決策にはいくつかの問題があります。

   window.sidebar.addPanel("", "","");

上記のコードは、すべてのMozilla Firefoxバージョンで機能するとは限りません。そこで、ブックメイキングのコードを以下のように書きました。 Webkit - safari/chrome を除くすべてのブラウザで問題なく動作します。

以下に示すように「a」タグを追加します

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

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.');
                }
            });
        });
于 2015-01-17T05:02:06.740 に答える