Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№7604-02-2006 13:34:35

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

Вот здесь: http://forum.mozilla.ru/viewtopic.php?pid=75035#p75035 я приводил код, позволяющий вызывать какой-либо из пунктов главного меню. В общем, в том коде была недоработка, связанная с добавлением элементов при каждом вызове меню, а также с неработоспособностью меню "Закладки". Первый код я исправил, а для меню "Закладки" нужен отдельный код, вот он:

Выделить код

Код:

var fm = document. getElementById ("bookmarks-menu");
var fmp = fm. getElementsByTagName ("menupopup")[0];
var ps = document. getElementById ("keyconfigPopups");
if (!ps)
{
    ps=document. createElement("popupset");
    ps. setAttribute ("id", "keyconfigPopups");
    window. getBrowser (). appendChild (ps);
}
var nfmp = fmp. cloneNode (true);
nfmp. setAttribute ("oncommand", "BookmarksMenu.loadBookmark(event, event.target, this.database)");
nfmp. setAttribute ("onclick", "BookmarksMenu.loadBookmarkMiddleClick(event, this.database)");
if (ps. getElementsByTagName ("menupopup"). length > 0)
{
    var op = ps. getElementsByTagName ("menupopup") [0];
    ps. removeChild (op);
}
ps. appendChild (nfmp);
nfmp. showPopup (window. getBrowser (), 20, 20, "context");

p.s. 2e-travel: если средствами одного только keyconfig, то, скорее всего, потребуется клавиша, которая будет "включать" такую возможность.
p.p.s.

e-travel пишет

...значит ты тоже подключился к написанию этого материала...

Я всего-лишь исправил кое-какие неточности в коде и добавил одну ссылку.

Отредактировано Anton (04-02-2006 13:56:42)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№7705-02-2006 16:51:00

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Anton
Нужно чтобы по Alt+B выполнялась своя команда, как и раньше -  выделение текста жирным в Wiki: wikicode.notagcode('**','**');. Но по Alt происходит переход в верхнее меню (по Alt+B - переход в меню Закладки). Это можно отключить?


Fx 2.0.0.8

Отсутствует

 

№7805-02-2006 17:44:27

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

Можно. Только с "включателем".
Делаем клавишу, допустим Alt+0 c кодом

Выделить код

Код:

if (!window. keyconfigAltBHandler)
{
    window. keyconfigAltBHandler = function (event)
    {
        if (event. altKey && (event. altKey == true) &&
            (event. charCode == "b". charCodeAt (0)))
        {
            ....
            event. preventDefault ();
        }
    }
    window. addEventListener ("keypress", window. keyconfigAltBHandler, true);
}

Там, где многоточие вставляем код для Alt+b. Перед первым применением нажимаем Alt+0.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№7905-02-2006 19:45:18

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Anton
Странно, у меня этот код почему то не работает, все сделал вроде правильно.


Fx 2.0.0.8

Отсутствует

 

№8005-02-2006 20:01:02

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

Ну, не знаю. У меня русифицированная версия (закладки на Alt+З). Вот код на Alt+5:

Выделить код

Код:

if (!window. keyconfigAltBHandler)
{
    window. keyconfigAltBHandler = function (event)
    {
        if (event. altKey && (event. altKey == true) &&
            (event. charCode == "з". charCodeAt (0)))
        {
            wikicode.notagcode ('**','**');
            event. preventDefault ();
        }
    }
    window. addEventListener ("keypress", window. keyconfigAltBHandler, true);
}

Нажимаю Alt+5, после чего Alt+З начинает вставлять **|**.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№8105-02-2006 20:54:37

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Anton
Извиняюсь, все работает, я не ту горячую клавишу указывал для команды. Нужно было указать hetkey "включателя" (Alt+0), а у меня по прежнему стояло Alt+b, сбила с толку строчка:

Выделить код

Код:

(event. charCode == "b". charCodeAt (0)))

подумал что в : charCodeAt (0) и указывается горячая клавиша для включателя. Второй пример все объяснил, спасибо.
У включателя, как я понял, есть один недостаток: он работает только 1 раз и чтобы он сбросился, нужно перезагрузиться. Например нельзя нажав второй раз Alt+0 и по Alt+b по прежнему переходить в закладки, хотя это и не так важно. А можно вообще отключить вызов меню по Alt? Я этим вообще не пользуюсь и нужно чтобы Alt был свободен.


Fx 2.0.0.8

Отсутствует

 

№8205-02-2006 21:44:22

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

Делаем файл, допустим bookmarks_menu.xml:

Выделить код

Код:

<?xml version="1.0"?>

<bindings id="bookmarksMenu"
          xmlns="http://www.mozilla.org/xbl"
          xmlns:xbl="http://www.mozilla.org/xbl"
          xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

  <binding id="bookmarks_menu"
           extends="chrome://global/content/bindings/menu.xml#menu-menubar">
    <implementation>
        <constructor>
            this. removeAttribute ("accesskey");
        </constructor>
    </implementation>
  </binding>

</bindings>

и "пришиваем" его через userChrome.css:

Выделить код

Код:

#bookmarks-menu { -moz-binding: url("file://C:/bookmarks_menu.xml#bookmarks_menu") !important; }

Можно и к другой менюшке "пришить" с тем же эффектом.

А лучше бы автор WikiCode "расстарался" на хоткеи...

Отредактировано Anton (05-02-2006 21:46:16)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№8305-02-2006 22:25:51

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Anton
класс, красота, и не нужно никаких "включателей", спасибо. Интересно это выглядит:
bookmarks_accesskey.png
Исчезло подчеркивание у буквы B, как раз то что мне нужно.


Fx 2.0.0.8

Отсутствует

 

№8405-02-2006 22:45:19

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Для полного счастья не хватает отключить команду переключения по вкладкам через Ctrl+цифра, это мне тоже не нужно, а свободные комбинации не помешают. И еще не удалось найти работающую команду для keyconfig чтобы можно было управлять расширением Edit Config Files, а именно настроить редактирование userChrome.css по горячей клавише. С помощью Menu Manipulator определил для него такие параметры:
label: userChrome.css
oncommand: editconfigfilesOverlay.onMenu(this.label);
oncommand не работает, может нужно еще и label в код записать?


Fx 2.0.0.8

Отсутствует

 

№8505-02-2006 23:24:48

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

e-travel пишет

Для полного счастья не хватает отключить команду переключения по вкладкам через Ctrl+цифра...

Можно добавить в конструктор вышеуказанного xml

Выделить код

Код:

window. setTimeout
            (
                function ()
                {
                    window. removeEventListener ("keypress", ctrlNumberTabSelection, false);
                },
                1000
            );

...
label: userChrome.css
oncommand: editconfigfilesOverlay.onMenu(this.label);
oncommand не работает, может нужно еще и label в код записать?

Похоже так.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№8606-02-2006 00:01:17

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Anton
Хорошо, с вкладками получилось, еще раз спасибо. Остался вопрос с объединением label и oncommand в одну команду, как бы это сделать? Хотел спросить, а где вообще можно почитать об синтаксисе скриптов, которые вставляются в keyconfig, на каком языке пишутся эти скрипты? А то получается что я бездумно вставляю все коды, которые были написаны выше, а что они означают не очень понимаю. Чем можно руководствоваться при написании таких скриптов? Думаю многим будет интересно это знать.


Fx 2.0.0.8

Отсутствует

 

№8706-02-2006 07:01:36

Modex
_
 
Группа: Extensions
Откуда: Краснодар, Россия
Зарегистрирован: 10-10-2004
Сообщений: 3311

Re: Горячие клавиши

e-travel
Для Edit Config Files попробуй это:

Using keyconfig.

   1. Install keyconfig
   2. Add the following to prefs.js (DON'T add to user.js!)

      user_pref("keyconfig.main.xxx_key__Edit Config Files - userChrome.css", "!][][][editconfigfilesOverlay.onMenu('userChrome.css');");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - userContent.css", "!][][][editconfigfilesOverlay.onMenu('userContent.css');");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - prefs.js", "!][][][editconfigfilesOverlay.onMenu('prefs.js');");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - user.js", "!][][][editconfigfilesOverlay.onMenu('user.js');");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - about:config", "!][][][editconfigfilesOverlay.openAboutConfig(event);");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - Open Profile Folder", "!][][][editconfigfilesOverlay.openProfileFolder();");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - Open Installation Folder", "!][][][editconfigfilesOverlay.openInstallationFolder();");
      user_pref("keyconfig.main.xxx_key__Edit Config Files - Settings...", "!][][][editconfigfilesCommon.openSettingsDialog();");

   3. Open the keyconfig window, and set your keyboard shortcut to "Edit Config Files - ???".

editconfigfiles_keyconfig.png


F.I.R.E.F.O.X.: Fearsome, Intimidating, Redhead-Eating Fiend from the Ominous Xenopolis
Скиньтесь мне на новый MacBook Pro! Кто сколько может!

Отсутствует

 

№8806-02-2006 08:56:48

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

e-travel пишет

...Остался вопрос с объединением label и oncommand в одну команду, как бы это сделать?...

Ну если

label: userChrome.css
oncommand: editconfigfilesOverlay.onMenu(this.label);

то c вероятностью, очень близкой к 1 что

Выделить код

Код:

editconfigfilesOverlay.onMenu("userChrome.css");

...Хотел спросить, а где вообще можно почитать об синтаксисе скриптов, которые вставляются в keyconfig, на каком языке пишутся эти скрипты?...

Я, кажется уже говорил в этой теме, на каком языке они пишутся. Общий синтаксис можно изучить здесь: http://wdh.suncloud.ru/js01.htm#ref3

...Чем можно руководствоваться при написании таких скриптов?...

xul+js исходнымы текстами firefox/thunderbird, а чем же ещё.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№8909-02-2006 08:38:20

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Modex
спасибо :), заработал код который дал Anton для keyconfig, оказывается label и oncommand объединить довольно просто.


Fx 2.0.0.8

Отсутствует

 

№9010-02-2006 20:03:00

IvanG
Участник
 
Группа: Members
Зарегистрирован: 17-01-2006
Сообщений: 41

Re: Горячие клавиши

Вот может быть кому-то поможет расширение functions for keyconfig, правда сам я его не тестировал
http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/
Оно добавляет в список для keyconfig некоторые сочетания клавиш для функции, которые изначально в keyconfig отсутствуют.

Отредактировано IvanG (10-02-2006 20:04:03)

Отсутствует

 

№9106-04-2006 20:08:20

Hronovorot
Участник
 
Группа: Members
Зарегистрирован: 18-04-2005
Сообщений: 50

Re: Горячие клавиши

А как сделать горячие клавиши для открытия одной из панелей инструментов (если она до этого была закрыта? Что-то не могу догадаться.:blush:

Отсутствует

 

№9207-04-2006 15:36:35

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

...горячие клавиши для открытия одной из панелей инструментов...

Выделить код

Код:

document. getElementById ("id нужной панели инструментов"). collapsed = false;

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№9309-04-2006 17:36:53

Hronovorot
Участник
 
Группа: Members
Зарегистрирован: 18-04-2005
Сообщений: 50

Re: Горячие клавиши

Anton, спасибо. Но оказалось, что не нужно... :blush:

Отсутствует

 

№9416-04-2006 06:44:22

e-travel
Участник
 
Группа: Extensions
Откуда: г.Киев
Зарегистрирован: 06-06-2005
Сообщений: 390
Веб-сайт

Re: Горячие клавиши

Повесил на Ctrl+Q выход из Firefox командой: goQuitApplication();
Теперь как в Thunderbird выходит, красота :) . Раньше по этому сочетанию вызывалась Translation Panel, пришлось заменить на другое, чтобы по Ctrl+Q выход работал.


Fx 2.0.0.8

Отсутствует

 

№9522-04-2006 16:47:32

Quicksilver tears
Забанен
 
Группа: Extensions
Зарегистрирован: 13-06-2005
Сообщений: 4459

Re: Горячие клавиши

Появилось расширение functions for keyconfig. Быть может кому-нибудь будет полезно.

Отсутствует

 

№9622-04-2006 16:54:36

Merlyel
псЫх
 
Группа: Extensions
Откуда: Уфа
Зарегистрирован: 20-12-2005
Сообщений: 2415

Re: Горячие клавиши

Quicksilver tears
Не появилось, а обновилось ;)


жЫзнь рандомна... и ничего с этим не поделаешь ;)

Отсутствует

 

№9704-10-2006 13:33:00

dancemaster
Участник
 
Группа: Members
Зарегистрирован: 30-05-2006
Сообщений: 39

Re: Горячие клавиши

Ice_sCream пишет

Скачал и распечатал список горячих клавиш с офиц. сайта. Но так и не понял что нажимать, чтобы "Закрыть все, кроме активной".
И еще - как сделать, чтобы эта кнопка была на панеле инструментов? Плагин может какой-то посоветуте.
Спасибо.

Дайте пожалуйста ссылку на офиц. сайт, где есть список горячих клавиш. Я не нашел... :(

Отсутствует

 

№9806-10-2006 00:48:32

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771

Re: Горячие клавиши

dancemaster
http://www.mozilla.org/support/firefox/keyboard


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№9927-10-2006 17:47:54

LA_
Участник
 
Группа: Members
Зарегистрирован: 27-10-2006
Сообщений: 62

Re: Горячие клавиши

а какой командой можно определить кол-во вкладок, в которых открыта какая-либо страница?

Выделить код

Код:

gBrowser.mPanelContainer.childNodes.length

показывает общее кол-во вкладок - это немного не то.
также интересует как прочесть URL страницы, открытой в каждой вкладке.
идея такая: по хоткею надо открывать определенную страницу, но если она уже открыта, то надо переключаться на вкладку с ней, а если еще не открыта, то открывать её в новой вкладке (а если есть хоть одна пустая вкладка - то в этой пустой вкладке!).
пока реализовал это так:

Выделить код

Код:

if (gBrowser.mPanelContainer.childNodes.length > 1) 
{window.getBrowser().addTab('http://someurl.ru');}
 else
{loadURI('http://someurl.ru');}

Отредактировано LA_ (27-10-2006 17:48:36)

Отсутствует

 

№10027-10-2006 18:28:10

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
Веб-сайт

Re: Горячие клавиши

идея такая: по хоткею надо открывать определенную страницу, но если она уже открыта, то надо переключаться на вкладку с ней, а если еще не открыта, то открывать её в новой вкладке (а если есть хоть одна пустая вкладка - то в этой пустой вкладке!).

В принципе, всё нужное для этого есть здесь: http://forum.mozilla-russia.org/viewtop … 627#p76627
можно ещё добавить:
document. getElementById ("content"). mTabs. item (n). linkedBrowser. currentURI. spec // адрес открытой в n-й вкладке страницы
document. getElementById ("content"). mTabBox. selectedIndex = n // переключение на n-ю вкладку


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]