Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Элементы HTML и CSS

  Все выпуски  

RFpro.ru: Элементы HTML


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4445
∙ повысить рейтинг »
Гаряка Асмик
Статус: Специалист
Рейтинг: 3900
∙ повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1227
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Элементы HTML

Номер выпуска:493
Дата выхода:25.05.2010, 22:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:349 / 206
Вопросов / ответов:1 / 2

Вопрос № 178532: Здравствуйте уважаемые эксперты! Нашел скрипт добавления страницы в закладки, помогите пожалуйста его подробно прокомментировать(в описании видел только замечание, что в IE 6 он не работает): <script type="text/javascript"&...



Вопрос № 178532:

Здравствуйте уважаемые эксперты!

Нашел скрипт добавления страницы в закладки, помогите пожалуйста его подробно прокомментировать(в описании видел только замечание, что в IE 6 он не работает):

<script type="text/javascript">
function getBrowserInfo() {
var t,v = undefined;
if (window.opera) t = 'Opera';
else if (document.all) {
t = 'IE';
var nv = navigator.appVersion;
var s = nv.indexOf('MSIE')+5;
v = nv.substring(s,s+1);
}
else if (navigator.appName) t = 'Netscape';
return {type:t,version:v};
}

function bookmark(a){
var url = window.document.location;
var title = window.document.title;
var b = getBrowserInfo();
if (b.type == 'IE' && 7 > b.version && b.version >= 4) window.external.AddFavorite(url,title);
else if (b.type == 'Opera') {
a.href = url;
a.rel = "sidebar";
a.title = url+', '+title;
return true;
}
else if (b.type == "Netscape") window.sidebar.addPanel(title,url,"");
else alert("Ia?ieoa CTRL-D, ?oiau aiaaaeou no?aieoo a caeeaaee.");
return false;
}
</script>

Я понимаю так:
//функция получения информации о браузере
function getBrowserInfo() {
// t - тип , v - версия, а что такое undefined?
var t,v = undefined;
if (window.opera) t = 'Opera'; //если опера, переменной t присваиваем значение "Opera"
else if (document.all) { //здесь не совсем понятно, почему сразу IE
t = 'IE';
var nv = navigator.appVersion; //?
var s = nv.indexOf('MSIE')+5; //?
v = nv.substring(s,s+1); //?
}
else if (navigator.appName) t = 'Netscape'; //тут тоже непонятно как определяется НетСкейп
return {type:t,version:v};
}

//функция добавления в закладки
function bookmark(a){ < br> var url = window.document.location; //ссылка
var title = window.document.title; //описание
var b = getBrowserInfo(); //вызов функции определения браузера
if (b.type == 'IE' && 7 > b.version && b.version >= 4) window.external.AddFavorite(url,title); //?external?
//в другом случае это Опера
else if (b.type == 'Opera') {
a.href = url;
a.rel = "sidebar"; //что здесь делает rel?
a.title = url+','+title;
return true;
}
else if (b.type == "Netscape") window.sidebar.addPanel(title,url,"");
else alert("Ia?ieoa CTRL-D, ?oiau aiaaaeou no?aieoo a caeeaaee.");
return false;
}

Я так понял для разных браузеров разные функции? И подскажите пожалуйста как правильно обращаться к этому скрипту: <a href="javascript: а далее?">В закладки</a>

Спасибо большое!

Отправлен: 20.05.2010, 21:00
Вопрос задал: Мироненко Николай Николаевич, Практикант
Всего ответов: 2
Страница вопроса »


Отвечает Гаряка Асмик, Специалист :
Здравствуйте, Мироненко Николай Николаевич.

Обращаться к скрипту надо так <a href="javascript:bookmark(this)">Добавить в закладки</a>. Но функция не работает для локальных файлов, а только по протоколу Http.
undefined - это неопределенное значение, аналогичное Null в других языках.
if (document.all) используется, потому что это свойство есть в IE. Но его не советуют применять, так как другие браузеры тоже могут это свойство поддерживать.
a.rel = "sidebar";
a представляет собой гиперссылку. Ее атрибут rel показывает отношение цели ссылки к данному документу. Например, sidebar означает, что ссылка должна открываться в боковой панели.
Этот атрибут поддерживается в IE 7 и 8, FF2 и 3, Safari 3
windows.external - это объект, позволяющий внутреннему компоненту IE общаться с самим приложением (на базе этого компонента каждый может создать свой браузер, и пример есть в VS). И среди методов есть AddFavorite, позволяющий соз дать закладку.

-----
Я ни от чего, ни от кого не завишу.

Ответ отправил: Гаряка Асмик, Специалист
Ответ отправлен: 20.05.2010, 23:56
Номер ответа: 261532

Оценка ответа: 5
Комментарий к оценке:
Спасибо Вам. Интересно, а как же тогда вызывается функция getBrowserInfo(), ведь мы же вызываем только bookmark() ? :)

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261532 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает F®ost, Модератор :
    Здравствуйте, Мироненко Николай Николаевич.
    В добавление к предыдущему ответу могу сказать, что проверил скрипт в браузерах IE 7, IE 8, Chrome, Opera 10, FireFox 3. Скрипт работает без ошибок. В браузерах, которые не поддерживают добавление в закладки через скрипт - показывается сообщение о том что добавить в закладки можно нажатием клавиш Ctrl-D.
    Ссылка, которая будет добавлять страницу в избранное, выглядит так:
    © Цитата:
    <a href="javascript:void(0);" onclick="return bookmark(this);">Добавить в избранное</a>



    -----
    От вопроса к ответу, от проблемы к решению

    Ответ отправил: F®ost, Модератор
    Ответ отправлен: 21.05.2010, 09:34
    Номер ответа: 261538
    Беларусь, Минск
    Тел.: 375292792018
    Организация: Минский Промтранспроект
    Адрес: ул. В.Хоружей, 13, г. Минск, Беларусь
    Адрес сайта: Минский Промтранспроект

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261538 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.15 от 25.05.2010

    В избранное