Last active
February 14, 2024 10:29
-
-
Save oilvier/70abd45d1f2ffc98b568 to your computer and use it in GitHub Desktop.
Javascript to add a bookmark - Cross Browser
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* Add to bookmark | |
* Several tests are necessary in order for this "simple" action to work in most of the browsers | |
* | |
*/ | |
// First, we define the element where the "Add to bookmark" action will trigger | |
var triggerBookmark = $(".js-bookmark"); // It must be an `a` tag | |
triggerBookmark.click(function() { | |
if (window.sidebar && window.sidebar.addPanel) { // Firefox <23 | |
window.sidebar.addPanel(document.title,window.location.href,''); | |
} else if(window.external && ('AddFavorite' in window.external)) { // Internet Explorer | |
window.external.AddFavorite(location.href,document.title); | |
} else if(window.opera && window.print || window.sidebar && ! (window.sidebar instanceof Node)) { // Opera <15 and Firefox >23 | |
/** | |
* For Firefox <23 and Opera <15, no need for JS to add to bookmarks | |
* The only thing needed is a `title` and a `rel="sidebar"` | |
* To ensure that the bookmarked URL doesn't have a complementary `#` from our trigger's href | |
* we force the current URL | |
*/ | |
triggerBookmark.attr('rel', 'sidebar').attr('title', document.title).attr('href', window.location.href); | |
return true; | |
} else { // For the other browsers (mainly WebKit) we use a simple alert to inform users that they can add to bookmarks with ctrl+D/cmd+D | |
alert('You can add this page to your bookmarks by pressing ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D on your keyboard.'); | |
} | |
// If you have something in the `href` of your trigger | |
return false; | |
}); |
@romanbobrik It works if your trigger element has an "href" like "#". The only drawback is that the saved URL is "http://url.com#".
So you're right, I've added the href in the script.
Thanks for your feedback !
it doesn't work on latest version of google chrome Windows 7 it always returns this alert('You can add this page to your bookmarks by pressing CTRL + D on your keyboard.');
Test Case: https://jsfiddle.net/mhmvbup2/1/
Would be cool if there would be a different message on mobile devices.
waist of time
waist of time
What an hourglass! ⌛
legendary, thx @nazywamsiepawel
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
"href" attribute is necessary too (tested in FF 44.0.1)