Drupalを使用してWebサイトを構築しています。各ページのヘッダーに、カスタムの[お気に入りに追加]ボタンとして機能する単一の画像(自分でデザインしたカスタム画像)が必要です。画像をクリックすると、ユーザーのブラウザのお気に入り(ブックマーク)にWebサイトのURLが追加されます。これは、すべてのブラウザー、IE7 +、FF、Opera、Chromeで機能するはずです。私はこのオンラインについて多くの情報を見つけることができませんでした。私はjavascriptが仕事をするはずだと思いますが、Javascriptの経験があまりないので:)あなたの助けが必要です!
jQueryバージョン
$(function() {
$('#bookmarkme').click(function() {
if (window.sidebar && window.sidebar.addPanel) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(document.title, window.location.href, '');
} else if (window.external && ('AddFavorite' in window.external)) { // IE Favorite
window.external.AddFavorite(location.href, document.title);
} else if (window.opera && window.print) { // Opera Hotlist
this.title = document.title;
return true;
} else { // webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a>
このコードは、iambriansreedの答えの修正版です。
<script type="text/javascript">
$(function() {
$("#bookmarkme").click(function() {
// Mozilla Firefox Bookmark
if ('sidebar' in window && 'addPanel' in window.sidebar) {
window.sidebar.addPanel(location.href,document.title,"");
} else if( /*@cc_on!@*/false) { // IE Favorite
window.external.AddFavorite(location.href,document.title);
} else { // webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
});
</script>
Rel = "sidebar"でいくつかの問題に直面しました。リンクタグに追加すると、FFではブックマークが機能しますが、他のブラウザでは機能しなくなります。 rel = "sidebar"をコードで動的に追加することで修正します。
jQuery('.bookmarkMeLink').click(function() {
if (window.sidebar && window.sidebar.addPanel) {
// Mozilla Firefox Bookmark
window.sidebar.addPanel(document.title,window.location.href,'');
}
else if(window.sidebar && jQuery.browser.mozilla){
//for other version of FF add rel="sidebar" to link like this:
//<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a>
jQuery(this).attr('rel', 'sidebar');
}
else if(window.external && ('AddFavorite' in window.external)) {
// IE Favorite
window.external.AddFavorite(location.href,document.title);
} else if(window.opera && window.print) {
// Opera Hotlist
this.title=document.title;
return true;
} else {
// webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
if (window.sidebar) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(document.title,location.href,"");
ブックマークはサイドバーに追加されます。
@ Gert Grenander 、 @ Alaa.Kh 、および Ross Shanon の功績
注文しようとしています:
それはすべて動作します-Firefoxブックマーク機能を除くすべて。何らかの理由で、「window.sidebar.addPanel」はデバッガ用の機能ではありませんが、正常に機能しています。
問題は、呼び出し元の_<a ..>
_タグから値を取得することです:タイトルをブックマーク名として、hrefをブックマークアドレスとして使用します。だからこれは私のコードです:
javascript:
_$("#bookmarkme").click(function () {
var url = 'http://' + location.Host; // i'm in a sub-page and bookmarking the home page
var name = "Snir's Homepage";
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1){ //chrome
alert("In order to bookmark go to the homepage and press "
+ (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ?
'Command/Cmd' : 'CTRL') + "+D.")
}
else if (window.sidebar) { // Mozilla Firefox Bookmark
//important for firefox to add bookmarks - remember to check out the checkbox on the popup
$(this).attr('rel', 'sidebar');
//set the appropriate attributes
$(this).attr('href', url);
$(this).attr('title', name);
//add bookmark:
// window.sidebar.addPanel(name, url, '');
// window.sidebar.addPanel(url, name, '');
window.sidebar.addPanel('', '', '');
}
else if (window.external) { // IE Favorite
window.external.addFavorite(url, name);
}
return;
});
_
html:
_ <a id="bookmarkme" href="#" title="bookmark this page">Bookmark This Page</a>
_
Internet Explorerでは、 'addFavorite':<a href="javascript:window.external.addFavorite('http://tiny.cc/snir','snir-site')">..</a>
と 'AddFavorite':<span onclick="window.external.AddFavorite(location.href, document.title);">..</span>
には違いがあります。
例: http://www.yourhtmlsource.com/javascript/addtofavorites.html
重要、chromeでは、jsを使用してブックマークを追加できません( aspnet-i ): http://www.codeproject.com/Questions/ 452899/How-to-add-bookmark-in-Google-Chrome-Opera-and-Saf