Пассажирские перевозки. Туристические и городские автобусы ютонг от официального дилера в Москве. . Отличные предложения по покупке редукторных масел castrol на сайте компании Центаурус.


/* 03.09.2005 */

Кроссбраузерные закладки

Автор: Цыгырлаш Игорь (03.09.2005)

Осмотримся по отдельности

В этой статье я расскажу, как добавить ссылку/закладку на свой сайт в браузер пользователя (IE, Gecko/ Mozilla/ Firefox/Netscape 6+, Opera 6+).

IE

Internet Explorer начиная с версии 4 предоставляет возможность добавлять закладки в избранное (Favorites) через скрипт, используя метод AddFavorite объекта window. external. При вызове метода AddFavorite отображается окно диалога такое же, как и при выборе пункта меню "Favorites -> Add to Favorites…".

Синтаксис метода AddFavorite:

external.AddFavorite(sURL [, sTitle])

где обязательный параметр sURL это - строка содержащая URL добавляемой в избранное закладки, а необязательный параметр sTitle, определяет текст-заголовок закладки в списке избранного. Пользователь может изменять данный текст в диалоговом окне "Add Favorite".

Метод не возвращает никакого значения.

Пример: Добавить в избранное

function AddFavorite(url, title)
{
  if (typeof window.external == "object")
  {
    window.external.AddFavorite(url, title);
    return true;
  }
  else return false;
}

...

<a href="javascript: void(AddFavorite(location.href, document.title) || alert('Пример работает только в IE4+'))">Добавить в избранное</a>
Gecko ( Mozilla/ Firefox/Netscape 6+)

Браузеры построенные на ядре Gecko предоставляют, так называемую, "боковую панель" (Sidebar), в которую можно добавлять собственные вкладки (своего рода интерактивные закладки) из скрипта с разрешения пользователя. Однако, закладки добавленные в Sidebar будут открываться по умолчанию именно в боковой панели, а не в основной части окна браузера. Чтобы закладка открывалась как обычно, в основной части окна, пользователю придется самостоятельно убрать галочку в соответствующем поле в окне свойств закладки.

Собственные вкладки могут быть сделаны с помощью HTML или XUL и добавлены в боковую панель браузера с помощью метода addPanel объекта window.sidebar.

Синтаксис метода addPanel:

window.sidebar.addPanel (aTitle, aContentURL, aCustomizeURL)

где aTitle заголовок под которым появляется вкладка, aContentURLURL для загрузки вкладки и необязательный параметр aCustomizeURL, точный смысл которого (на данный момент) скрыт за семью замками, но о нем сказано, что это ссылка для кастомизации вкладки.

Пример: Добавить закладку в Sidebar

function AddSidebarBookmark (url, title)
{
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
  {
    window.sidebar.addPanel (title, url, "");
    return true;
  }
  else return false;
}

...

<a href="javascript: void(AddSidebarBookmark(location.href, document.title) || alert('Ваш браузер не поддерживает Sidebar-закладки.'))">Добавить закладку в Sidebar</a>

Также установить закладку можно с помощью ссылки с установленным атрибутом rel="sidebar":

<a href="url" title="title" rel="sidebar"> Bookmark page </a>

где url – задает URL, а title определяет заголовок закладки.

Пример: Добавить закладку в Sidebar

Opera 6 +

Начнем с того, что Opera не предоставляет средств для добавления закладок из скрипта, а требует формирования ссылок с установленным атрибутом rel="sidebar", так же как это было показано для Gecko. При этом в версиях Opera 6.x закладки добавлялись в виде отдельной панели в "Hotlist", при этом в в "Bookmarks" закладки не попадали. Соответственно, страница отображалась не в основной части окна, а на панели (правда "Hotlist" можно было сделать плавающим и развернуть на все окно). Но начиная с Opera 7 закладки стали добавляться в "Bookmarks", а при помеченом поле "Show in panel" в окне диалога "Add bookmark" и на боковую панель (а "Show in panel" отмечено по умолчанию при использовании ссылки с rel="sidebar") . Если пользователь использует закладку в Bookmarks, то страница отображаться в основной части окна, если же пользователь использует боковую панель, то страница появляется на отдельной боковой панели.

Замечание: Ссылка с атрибутом rel="sidebar" будет работать также и в Opera 5.11 + при соответствующих настройках файлов конфигурации.

Собираем все вместе...

function addBookmark(url, title)
{
  if (!url) url = location.href;
  if (!title) title = document.title;
  
  //Gecko
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  //IE4+
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  //Opera7+
  else if (window.opera && document.createElement)
  {
    var a = document.createElement('A');
    if (!a) return false; //IF Opera 6
    a.setAttribute('rel','sidebar');
    a.setAttribute('href',url);
    a.setAttribute('title',title);
    a.click();
  }
  else return false;
  
  return true;
}

...

<a href="javascript: void(addBookmark() || alert('Ваш браузер не поддерживает автоматическое добавление закладок.'))"> Bookmark page</a>

Пример: Bookmark page

Итоги

И что же мы имеем. Функция addBookmark добавляет закладку в IE4+, Gecko и Opera7+ и это хорошо. При выборе закладки в IE -> Favorites и Opera -> Bookmarks, страница отображается в основной части окна браузера, однако в Gecko страница открывается в боковой панели - это плохо.



-> Обсудить статью в форуме
Пассажирские перевозки. Туристические и городские автобусы ютонг от официального дилера в Москве. . Отличные предложения по покупке редукторных масел castrol на сайте компании Центаурус.
<- Назад к списку статей
•> Скажи Javascript, нажат ли Caps Lock?
<• MAILTO: взгляд вглубь и вширь...