Проблема с закладками javascript в Firefox

Я использую следующий код 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 по этой теме практически не дал результата), но я мог что-то упустить. Если у кого-то есть идея, возможно ли это или есть обходной путь, я хотел бы услышать об этом.

Кстати, window.opera && window.print, похоже, нацелен на Opera> v6. <br /> Атрибут language устарел и не должен объявляться: w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2

Volker E. 05.12.2013 19:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
7
1
9 292
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

У вас есть особый случай для

if (window.sidebar) 

а затем ветка для 'else' - не будет ли firefox приземлиться в первой ветке и, следовательно, только добавить панель?

Я имею в виду - вместо того, чтобы писать else if (window.external), сделайте новый if, чтобы вы также добавили его в качестве закладки

Per Hornshøj-Schierbeck 20.09.2008 15:57
Ответ принят как подходящий

Я думаю, что это единственное решение для 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, не открыв ее на боковой панели.

Jan Hančič 20.09.2008 16:11

этот код сломается, если у вас есть элемент с id = "sidebar", как упоминалось здесь: stackoverflow.com/questions/17747578/…

reikyoushin 19.07.2013 22:00

Ходзё,

Похоже, это единственный способ добавить закладку для 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/…

reikyoushin 19.07.2013 22:02

Другие вопросы по теме