Вопрос № 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>
Отвечает Гаряка Асмик, Специалист :
Здравствуйте, Мироненко Николай Николаевич.
Обращаться к скрипту надо так <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 (Россия) |
Еще номера »
Отвечает 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 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.