Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[JavaScript] Эмулировать нажатия клавиш

274
12 января 2010 года
Lone Wolf
1.3K / / 26.11.2006
Вобщем стоит задача сделать ЖС-функционал добавления в закладки. Все бы было хорошо, но многие юзвери(в оснвоном лисы) юзать плагины для закладок, которые вызываются CTRL+D, и ЖС-вызов window.sidebar.addPanel(title,href,""); им не нужен, так как вызывает стандартные лисьи закладки.
Вот я и задался вопросом, можно ли с эмулировать нажатия клавиш ctrl+d или вызвать именно то что браузер вызывает по ctrl+d
253
19 января 2010 года
Proger_XP
1.5K / / 07.08.2004
Если бы JavaScript'ом с любой страницы можно было эмулировать клавиши и вызывать win32 api, то это был бы конец...

А чем не устраивает addPanel?

Вообще говоря, я недавно сам проблемой добавления в закладки заморачивался, и обнаружил любопытную вещь. Оказывается, в FF и Опере это можно сделать вообще без JS. Вот пример:
Цитата:

<a rel="sidebar" title="bookmark title" href="http://url"
onclick="if (IsIE()) {
window.external.AddFavorite(document.location.href, document.title);
return false;
}">
link
</a>



Работает в FF 2 & 3, IE 6 & 8, Opera 7 & 10.
IsIE() замени на какую-нибудь функцию определения IE, например, по useragent'у или typeof window.external != 'undefined'.

563
19 января 2010 года
MrLinker
249 / / 17.09.2006
Мой любимый способ определения IE:
 
Код:
var IE='\v'=='v';
253
19 января 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: MrLinker
Мой любимый способ определения IE:
 
Код:
var IE='\v'=='v';


Вау, такого я не встречал еще. Для каких версие сие работает? Возьму на заметку.

Я обычно делаю так:

 
Код:
<head> ...
  <!--[if IE]>
    <script type="text/javascript">
    window.ie_specific = true;
    </script>
  <![endif]-->

И
 
Код:
function IsIE() {
  return typeof ie_specific != 'undefined';
}
563
19 января 2010 года
MrLinker
249 / / 17.09.2006
Цитата:
Для каких версие сие работает?


Для всех, включая IE8.
К этому моменту, оказывается, нашли еще короче:

 
Код:
if(!+"\v1") // true only in IE

Ссылки по теме:
http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
http://www.thespanner.co.uk/2009/01/29/detecting-browsers-javascript-hacks/
http://habrahabr.ru/blogs/javascript/50544/

[COLOR="Red"]UPD[/COLOR]
Тут товарищ предлагает еще короче:
http://www.studioad.ru/blog/ie_detection_in_5_bytes/2010-01-08-103
253
19 января 2010 года
Proger_XP
1.5K / / 07.08.2004
С ума сойти до чего народ извращается :D Спасибо, полезная инфа.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог