Я использую следующий код JavaScript:
<script language = "JavaScript1.2" type = "text/javascript">
function CreateBookmarkLink(title, url) {
if (window.sidebar) {
window.sidebar.addPanel(title, url,"");
} else if ( window.external ) {
window.external.AddFavorite( url, title); }
else if (window.opera && window.print) {
return true; }
}
</script>
Это создаст закладку для Firefox и IE. Но ссылка на Firefox будет отображаться на боковой панели браузера, а не на главном экране. Лично меня это очень раздражает, и я ищу лучшее решение. Конечно, можно отредактировать закладку вручную, чтобы она нет отображалась на боковой панели, но это требует дополнительных действий. Я просто хочу, чтобы люди делали закладку на страницу (которая содержит много информации GET в URL-адресе, который используется для построения определенной схемы) простым способом.
Боюсь, что Firefox может вообще не отображать страницу на главном экране (поскольку поиск в Google по этой теме практически не дал результата), но я мог что-то упустить. Если у кого-то есть идея, возможно ли это или есть обходной путь, я хотел бы услышать об этом.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У вас есть особый случай для
if (window.sidebar)
а затем ветка для 'else' - не будет ли firefox приземлиться в первой ветке и, следовательно, только добавить панель?
Я имею в виду - вместо того, чтобы писать else if (window.external), сделайте новый if, чтобы вы также добавили его в качестве закладки
Я думаю, что это единственное решение для Firefox ... У меня есть лучшая функция для этого действия, она работает даже для Opera и показывает сообщение для других "неподдерживаемых" браузеров.
<script type = "text/javascript">
function addBookmark(url,name){
if (window.sidebar && window.sidebar.addPanel) {
window.sidebar.addPanel(name,url,''); //obsolete from FF 23.
} else if (window.opera && window.print) {
var e=document.createElement('a');
e.setAttribute('href',url);
e.setAttribute('title',name);
e.setAttribute('rel','sidebar');
e.click();
} else if (window.external) {
try {
window.external.AddFavorite(url,name);
}
catch(e){}
}
else
alert("To add our website to your bookmarks use CTRL+D on Windows and Linux and Command+D on the Mac.");
}
</script>
ты прав. нет возможности добавить страницу в закладки в firefox, не открыв ее на боковой панели.
этот код сломается, если у вас есть элемент с id = "sidebar", как упоминалось здесь: stackoverflow.com/questions/17747578/…
Ходзё,
Похоже, это единственный способ добавить закладку для Firefox. Таким образом, FF должен приземлиться в первой ветке, чтобы вообще что-нибудь происходило. Я погуглил еще немного, но я действительно понимаю, что это невозможно правильно решить в FF ...
Для Firefox нет необходимости устанавливать какой-либо JavaScript для закладки страницы по сценарию, только тег привязки с заглавие и rel = "боковая панель" может выполнять эту функцию.
<a href = "http://www.google.com" title = "Google" rel = "sidebar">Bookmark This Page</a>
Я тестировал его на FF9, и он работает нормально.
Когда вы нажимаете на ссылку, Firefox откроет диалоговое окно Новая закладка, и если вы не хотите загружать эту закладку на боковой панели, снимите флажок Загрузите эту закладку на боковой панели в диалоговом окне.
+1 спасибо, это меня спасло .. но более общий способ можно найти здесь: stackoverflow.com/questions/17747578/…
Кстати,
window.opera && window.print, похоже, нацелен на Opera> v6. <br /> Атрибутlanguageустарел и не должен объявляться: w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2