Проблема закладки JavaScript в Firefox - PullRequest
7 голосов
/ 20 сентября 2008

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

Ответы [ 4 ]

7 голосов
/ 31 января 2012

Для Firefox нет необходимости устанавливать JavaScript для закладки страницы скриптом, только якорный тег с title и rel = "sidebar" может выполнять эту функцию

<a href="http://www.google.com" title="Google" rel="sidebar">Bookmark This Page</a>

Я проверил его на FF9, и он работает нормально.

Когда вы нажимаете на ссылку, Firefox открывает диалоговое окно Новая закладка , и если вы не хотите загружать эту закладку на боковой панели, снимите флажок Загрузить эту закладку на боковой панели из диалогового окна.

4 голосов
/ 20 сентября 2008

Я думаю, что это единственное решение для 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>
0 голосов
/ 20 сентября 2008

Hojou,

Кажется, это единственный способ добавить закладку для Firefox. Таким образом, FF должен приземлиться в первой ветке, чтобы вообще что-то происходило. Я погуглил еще немного, но я действительно понимаю, что это невозможно исправить в FF ...

0 голосов
/ 20 сентября 2008

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

if (window.sidebar) 

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

...