Я честно просмотрел все 38 страниц темы форума, но не нашел, как делать отработчик(?) shift+click или ctrl+click.
В инициализацию:
В наличии свойства:
button = 0, 1 или 2 – кнопки мыши (левая, средняя или правая)
ctrlKey, shiftKey, altKey (ну, и metaKey, которая, вроде бы, на Маках) – модификаторы
Как кнопке задавать условия, при которой кнопка будет неактивной (выглядеть неактивной)?
Только стилевого оформления почему-то нету.
как и стандартные лисовские стрелки, показывая что дальше «мотать некуда»?
Применительно к стрелкам – нужен обработчик изменения адреса в адресной строке, вроде бы достаточно добавить атрибут command, потому как это «встроенная команда».
Кнопка «назад», инициализация:
this. setAttribute ("command", "Browser:BackOrBackDuplicate"); this. setAttribute ("oncommand", "BrowserBack(event)"); this. setAttribute ("onclick", "checkForMiddleClick(this,event)");
(но это все копировалось из Firefox 3.5)
К слову, визуализацией еще userChrome.css заправляет.
P.S. Я подозреваю, что в теме CB это может быть оффтопом, но как принудительно открывать в табах те окна, которые запускаются различными плагинами?
Если только сделать «обертку» для оригинальной функции открытия. И то потом может выясниться, что нужно еще и код в самом окне как-то корректировать.
Добавлено 28-07-2009 00:16:48
P.S. Итого: кнопкам навигации есть смысл добавить атрибут command (и вообще скопировать все как есть – command, oncommand и onclick), а также добавить стилизацию отключенного состояния (хотя с этим и не совсем ясно).
Отредактировано Infocatcher (28-07-2009 00:06:01)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
добавить стилизацию отключенного состояния (хотя с этим и не совсем ясно).
В том плане, что хотелось бы, чтобы все CB-кнопки визуализировали [disabled="true"] через стили.
Но для начала сойдут и дополнительные картинки, конечно.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Кстати, автор Firediff одумался.
var JsDiff = (function() { // ... function escapeHTML(s) { var n = s; n = n.replace(/&/g, "&"); n = n.replace(/</g, "<"); n = n.replace(/>/g, ">"); n = n.replace(/"/g, """); return n; }
Примерно через 5 дней, однако. При этом я ему не писал.
Добавлено 28-07-2009 06:15:24
P.S. Впрочем, «var n = s;» мне видится довольно странным присваиванием в данном случае.
Отредактировано Infocatcher (28-07-2009 06:24:29)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
А можно как нить через CSS скрыть в кнопке менеджера дополнений пункты: "Загрузить сессию", "Восстановить сессию", "переименовать сессию", "группировать сессию(ии)", "открыть папку сессий" и "Настройки менеджера сессий"
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Al_H
Сделал кнопку для CustomButtons "по мотивам" ТЗ из № 906
Спасибо!
Пока что посмотрел на окошки. Сразу не хватает двух вещей. Кнопка добавляет в список сразу все стили, имеющиеся в Stylish. Это противоестественно, их может быть много, и даже к хрому относятся не все, не говоря уж конкретно о темах, а не об аддонах. Я бы предложил по умолчанию включить в список стили с определенным комментарием где-то или с частью заголовка, например, themeheal- или themecustomize-. Далее, при прокрутке таблички, сразу скрывается ее заголовок (названия стилей). Хочется сделать его непрокручиваемым, что-то вроде position: fixed;
Если у имен стилей будет префикс, в таблице его не надо отображать. Сокращение ширины столбца будет полезным. При добавлении нового стиля с таким названием из встроенных в тело комментариев можно узнавать список тем, для которых предлагается его активировать по умолчанию, имея в виду, что для всех остальных он выключен. Но это перспективы.
И еще замечания. Не может быть кнопки Disable All. Может быть флажок. Он фактически не снимает все другие флажки строки, он только блокирует их применение более сильным состоянием off. И полностью аналогичен отключению стиля в Stylish - это для столбцов, то есть стилей. Для стилей этого ещё не сделано. Для тем тоже должен быть флажок, а не кнопка. Флажки и строк, и столбцов, относящиеся, соответственно, к запрещению данного стиля или всех стилей для данной темы, никаких других флажков не снимают, все запоминается, но в состоянии disable all (помеченном) имеют приоритет перед, соответственно, флажками внутри строки и столбца. Естественно, все вышесказанное относится только к стилям-модификтором тем. Все остальные стили не должны показываться в таблице и на них не должно быть влияния ни одной настройки кнопки.
Сверху и снизу хотелось бы по флажку [_] temporary disable all theme modifications
Ну в общем вот так.
Отсутствует
А можно как нить через CSS скрыть в кнопке менеджера дополнений пункты: "Загрузить сессию", "Восстановить сессию", "переименовать сессию", "группировать сессию(ии)", "открыть папку сессий" и "Настройки менеджера сессий"
В общем случае вот так:
menuitem[label="Загрузить сессию..."], menu[label="Восстановить сессию"], menuitem[label="Переименовать сессию"], menuitem[label="Группировать сессию(ии)"], menuitem[label="Открыть папку сессий"], menuitem[label="Настройки Менеджера сессий"] { display: none !important; }
Чтобы скрыть разделители, можно заменить
display: none !important;
на
opacity: 0.2 !important;
и добавить (в зависимости от расположения разделителей)
menuitem[label="Загрузить сессию..."], menu[label="Восстановить сессию"], menu[label="Восстановить сессию"] + menuseparator, menuitem[label="Переименовать сессию"], menuitem[label="Группировать сессию(ии)"], menuitem[label="Открыть папку сессий"], menuitem[label="Открыть папку сессий"] + menuseparator, menuitem[label="Настройки Менеджера сессий"] { display: none !important; }
А вообще, лучше смотреть в DOM Inspector'е (а то в меню Инструменты тоже скроет, ну, и лучше, когда без привязки к локали):
#sessionmanager-toolbar [oncommand="gSessionManager.load();"], #sessionmanager-toolbar [_id="backup-separator"], #sessionmanager-toolbar [_id="backup-menu"], #sessionmanager-toolbar [oncommand="gSessionManager.rename();"], #sessionmanager-toolbar [oncommand="gSessionManager.group();"], #sessionmanager-toolbar [oncommand="gSessionManager.openFolder();"], #sessionmanager-toolbar [_id="options-separator"], #sessionmanager-toolbar [oncommand="gSessionManager.openOptions();"] { display: none !important; }
Отредактировано Infocatcher (28-07-2009 19:13:15)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
СПАСИБО!!!
А вообще, лучше смотреть в DOM Inspector'е (а то в меню Инструменты тоже скроет, ну, и лучше, когда без привязки к локали):
Меню я вообще убрал, так что ничего страшного
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Anton
P.S. Вот и первые глюки. Каким-то образом задублировались стили, большая часть, причем они шли парами включенный-отключенный, в итоге включились часть стилей, которые я не предполагал. При переключении тем и перезагрузке, самопроизвольно включались стили, которые я отключал через Stylish. Вообще очень странно оно себя вело. Дублирующие удалил, и Custom Buttons временно отключил.
Отсутствует
razoo
неплохо бы было получить кнопку, которая по нажатию загружает последнюю сессию, сохраненную “Tab Mix Plus”, а рядом стрелка с выпадающим меню, в котором всё то же, что в меню и сейчас.
Не получилось. Если делать меню, как оно прописано в оверлее TMP, то почему-то не отображается список сессий в основном меню и в меню "Rename", отображается в меню "Delete".
Кажется, надо "разгребать" много кода, чтобы выяснить почему это так.
В общем, браться я за это не буду.
для плагина Screengrab!
Хотел, чтобы при нажатии он делал скриншот всей страницы,
при ctrl+click видимую часть,
при shift+click предлагал выделить нужную часть.
Примерно так:
this. onclick = function (event)
{
if (event. button > 0)
return;
if (event. ctrlKey)
sg.Grab(new sg.FrameTarget(), sg.CaptureViewPort, new sg.SaveAction());;
else if (event. shiftKey)
sg.Grab(new sg.SelectionTarget(), sg.CaptureViewPort, new sg.SaveAction());;
else
sg.Grab(new sg.VisibleTarget(), sg.CaptureViewPort, new sg.SaveAction());
};
Еще хотел избавиться от плагина Uppity, заменив его кастом-кнопкой с простеньким кодом upOneFolder();
Не понял. В FF, кажется, нет функции upOneFolder.
кнопку для “Block Site” можно ещё усовершенствовать. Мог бы ты сделать так, чтобы нижней строкой в выпадающем меню можно было вызвать окно настроек самого плагина (там блэк лист)?
В коде той кнопки, что уже есть, перед строкой
menu = new DOMParser (). parseFromString (menu. toXMLString (), "application/xml"). documentElement;
надо добавить строки
menu. appendChild (<menuseparator/>); menu. appendChild (<menuitem label="Black List" oncommand="event.stopPropagation();window.open('chrome://blocksite/content/BlockSitePrefs.xul', '', 'chrome,centerscreen');"/>);
Infocatcher
Итого: кнопкам навигации есть смысл добавить атрибут command (и вообще скопировать все как есть – command, oncommand и onclick)
Ок, посмотрю.
Al_H
Каким-то образом задублировались стили, большая часть, причем они шли парами включенный-отключенный, в итоге включились часть стилей, которые я не предполагал. При переключении тем и перезагрузке, самопроизвольно включались стили, которые я отключал через Stylish.
Не могу воспроизвести. На какой минимальной конфигурации это происходит и после выполнения каких действий ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton, приспособил написанную тобой кнопку под Download Master Portable, папку которого кинул в папку с профилем лисы:
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3EDownload%20Master%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20profileDir%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%20%20%20%20.getService%28Components.interfaces.nsIProperties%29%0A%20%20%20%20.get%28%22ProfD%22%2C%20Components.interfaces.nsILocalFile%29%0A%20%20%20%20.path%3B%0Avar%20path%20%3D%20profileDir%20+%20%22%5C%5CDmaster%5C%5Cdmaster.exe%22%3B%0A%0Athis.%20runDM%20%3D%20function%20%28url%29%0A%7B%0A%20%20%20%20var%20file%20%3D%20Components.%20classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20createInstance%20%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20var%20process%20%3D%20Components.%20classes%20%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20createInstance%20%28Components.%20interfaces.%20nsIProcess%29%3B%0A%20%20%20%20file.%20initWithPath%20%28path%29%3B%0A%20%20%20%20process.%20init%20%28file%29%3B%0A%20%20%20%20if%20%28%21this.%20pid%29%0A%20%20%20%20%20%20%20%20this.%20pid%20%3D%20%5B%5D%3B%0A%20%20%20%20this.%20pid.%20push%20%28process.%20run%20%28false%2C%20url%20%26%26%20%5Burl%5D%7C%7C%20null%2C%20url%20%26%26%201%20%7C%7C%200%29%29%3B%0A%7D%3B%0A%0Athis.%20handleDragOver%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20dt%20%3D%20event.%20dataTransfer%3B%0A%20%20%20%20var%20url%20%3D%20dt.%20mozGetDataAt%20%28%22text/plain%22%2C%200%29%3B%0A%20%20%20%20if%20%28%21url%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20event.%20preventDefault%20%28%29%3B%0A%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20return%20dt.%20effectAllowed%20%3D%20dt.%20dropEffect%20%3D%20%22link%22%3B%0A%7D%0A%0Athis.%20handleDrop%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20dt%20%3D%20event.%20dataTransfer%3B%0A%20%20%20%20var%20url%20%3D%20dt.%20mozGetDataAt%20%28%22text/plain%22%2C%200%29%3B%0A%20%20%20%20if%20%28url%29%0A%20%20%20%20%20%20%20%20this.%20runDM%20%28url%29%3B%0A%7D%3B%0A%0Athis.%20setAttribute%20%28%22ondragdrop%22%2C%20%22return%20this.%20handleDrop%20%28event%29%3B%22%29%3B%0Athis.%20setAttribute%20%28%22ondragover%22%2C%20%22return%20this.%20handleDragOver%20%28event%29%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.%20runDM%20%28%22%22%29%3B%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E
Напомню: при нажатии на кнопку ЛКМ запускается DMaster, при перетаскивании ссылки на кнопку - ссылка передается для закачки DMaster`у.
Прошу "прикрутить" к этой кнопке ещё 1 функцию - передача DMaster'у ссылки из буфера обмена по нажатию средней кнопки мыши (либо по нажатию левой кнопки, отменив тем самым назначенный на эту кнопку запуск приложения)
Отредактировано 3Jlou (29-07-2009 16:38:54)
Отсутствует
Пытался сделать кнопку для открытия\закрытия тулбара дополнения TextFormattingToolbar.
Но кнопка не работает. вот код:
var a = document.getElementById("Text Formatting toolbar");
a.collapsed = !a.collapsed;
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
У Вас самопроизвольно стили не включаются?
При переключении на тему в строке которой для стиля установлен флажок - включаются.
Других самопроизвольных включений пока не замечал.
А что по моим просьбам насчет интерфейса?
Я бы предложил по умолчанию включить в список стили с определенным комментарием где-то или с частью заголовка, например, themeheal- или themecustomize-.
Если у имен стилей будет префикс, в таблице его не надо отображать.
Не понятно: надо отображать стили с определённым префиксом или не отображать стили с определённым префиксом ?
При добавлении нового стиля с таким названием из встроенных в тело комментариев можно узнавать список тем, для которых предлагается его активировать по умолчанию, имея в виду, что для всех остальных он выключен. Но это перспективы.
Фильтрацию по коду стиля делать не буду.
Он фактически не снимает все другие флажки строки, он только блокирует их применение более сильным состоянием off. И полностью аналогичен отключению стиля в Stylish - это для столбцов, то есть стилей. Для стилей этого ещё не сделано. Для тем тоже должен быть флажок, а не кнопка. Флажки и строк, и столбцов, относящиеся, соответственно, к запрещению данного стиля или всех стилей для данной темы, никаких других флажков не снимают, все запоминается, но в состоянии disable all (помеченном) имеют приоритет перед, соответственно, флажками внутри строки и столбца.
Попробую.
Естественно, все вышесказанное относится только к стилям-модификтором тем. Все остальные стили не должны показываться в таблице и на них не должно быть влияния ни одной настройки кнопки.
Сверху и снизу хотелось бы по флажку [_] temporary disable all theme modifications
Здесь не понятно.
1. Что есть "стили-модификаторы"
2. Какие всё-таки стили должны отображаться в таблице.
3. Назначение "temporary disable all theme modifications"
Добавлено 29-07-2009 17:02:22
3Jlou
Прошу "прикрутить" к этой кнопке ещё 1 функцию - передача DMaster'у ссылки из буфера обмена по нажатию средней кнопки мыши (либо по нажатию левой кнопки, отменив тем самым назначенный на эту кнопку запуск приложения)
Если по средней кнопке - надо добавить в раздел "Инициализация"
this. handleClick = function (event) { if (event. button == 1) this. runDM (custombuttonsUtils. gClipboard. read ()); }; this. setAttribute ("onclick", "this. handleClick (event);");
Если по левой кнопке - в раздел "Код" поместить строку
Добавлено 29-07-2009 17:04:23
Najlus
Таких id вроде бы не бывает. Сможешь выяснить с помощью DOM Inspector'а её (панели инструментов) id ?
Отредактировано Anton (29-07-2009 17:06:29)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Сможешь выяснить с помощью DOM Inspector'а её (панели инструментов) id
Если с ним поразбираться, то наверное
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Пытался сделать кнопку для открытия\закрытия тулбара дополнения TextFormattingToolbar.
Но кнопка не работает. вот код:var a = document.getElementById("Text Formatting toolbar");
a.collapsed = !a.collapsed;
Так работает:
Добавлено 29-07-2009 17:47:26
Anton, сердечно благодарю, работает как хотелось
Отсутствует
3Jlou спасибо
Вы ленивы, следовательно вы изобретательны (Граф Де Гиш)
Список настроек About:config на русском языке с пояснениями и рекомендациями
Отсутствует
Таких id вроде бы не бывает.
Я как-то встречал с пробелами. Ну, то есть оно, вроде бы, не валидно, но браузер значение не проверяет.
var clone = this.cloneNode(true); var id = "Кириллица, однако!"; clone.id = id; this.parentNode.insertBefore(clone, this.nextSibling); alert(document.getElementById(id).id);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Al_H
При переключении тем и перезагрузке, самопроизвольно включались стили, которые я отключал через Stylish.
При переключении тем удалось "поймать" самопроизвольное включение. Попробую исправить.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Не понятно: надо отображать стили с определённым префиксом или не отображать стили с определённым префиксом ?
Я предложил скрыть часть стилей из таблицы, оставив только те, что относятся к темам. Как это сделать? Либо с помощью части имени стиля themecustomization- (themecustomization-defaultscrollbars, themecustomization-outlinedscrollbars, themecustomization-searchfavicon), либо уже делать отдельное окошко с перечнем стилей и флажком [_]Показать в таблице. В любом случае, так как сейчас – неразумно. Большая часть стилей в Stylish у меня не для тем, а для сайтов. И в них даже задано, что они относятся не к хрому. Как минимум, их можно сразу не выводить. И из остальных много лишних, только таблицу забивают.
Что я имел в виду. Если Вы выберете вариант с префиксом, то в таблице из названия стиля нужно префикс удалять, а точнее, скрывать. То есть, стили themecustomization-defaultscrollbars, themecustomization-outlinedscrollbars, themecustomization-searchfavicon будут в таблице высвечиваться как defaultscrollbars, outlinedscrollbars, searchfavicon.
Фильтрацию по коду стиля делать не буду.
ок
Других самопроизвольных включений пока не замечал.
Допустим, у Вас включен стиль при добавлении этой кнопки. Значит, он будет включен для всех тем. Логично? Теперь Вы открываете Stylish-Custom, и там его отключаете. Затем выбираете другую тему или ставите новую. Что произойдет?
Здесь не понятно.
1. Что есть "стили-модификаторы"
2. Какие всё-таки стили должны отображаться в таблице.
3. Назначение "temporary disable all theme modifications"
1. Стили, относящиеся именно к исправлению ошибок тем, то есть, те, которые нас с Вами интересуют. В отличие от тех, которые перекрашивают Яндекс в зеленый цвет, или увеличивают в 4 раза кнопку с плюсиком на сайте, посвященном физике тотализаторов.
2. См. выше. Не все.
3. Мы с Вами говорили про флажок отключения стиля для всех тем скопом. А этот будет отключать вообще все стили, упомянутые в таблице.
То и другое осуществляется без сброса других флажков, которые корректно запоминаются.
Отсутствует
Al_H
Если Вы выберете вариант с префиксом, то в таблице из названия стиля нужно префикс удалять, а точнее, скрывать.
этот будет отключать вообще все стили, упомянутые в таблице.
Понятно.
Допустим, у Вас включен стиль при добавлении этой кнопки. Значит, он будет включен для всех тем. Логично? Теперь Вы открываете Stylish-Custom, и там его отключаете. Затем выбираете другую тему или ставите новую. Что произойдет?
Самопроизвольное включение я уже видел. Предполагаю, что код кнопки срабатывает раньше кода Stylish.
Но на всякий случай, вдруг я что-то не понял: если стиль будет отключен только для строки активной темы, он отключится сразу, а при переключении на другую тему он должен включиться.
При установке новой темы без переключения на неё, состояние стиля для этой новой темы будет определяться текущим состоянием стиля. Если стиль сейчас включен - в таблице он будет для новой темы, если он сейчас выключен - будет считаться отключенным. А после того, как диалоговое окно будет закрыто, то состояние стиля для новой темы, которое было в таблице, должно сохраниться.
1. Стили, относящиеся именно к исправлению ошибок тем, то есть, те, которые нас с Вами интересуют.
Понятно, т. е., стили с заданными префиксами.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
При установке новой темы без переключения на неё, состояние стиля для этой новой темы будет определяться текущим состоянием стиля. Если стиль сейчас включен - в таблице он будет для новой темы, если он сейчас выключен - будет считаться отключенным. А после того, как диалоговое окно будет закрыто, то состояние стиля для новой темы, которое было в таблице, должно сохраниться.
1. Стили, относящиеся именно к исправлению ошибок тем, то есть, те, которые нас с Вами интересуют.
Понятно, т. е., стили с заданными префиксами.
Тут путаница. При установке новой темы как раз происходит переключение на нее.
Далее, про дефолтные настройки.
По идее, эти стили - костыли. То есть, если у нас есть тема iPox, адаптированная под Фокс 3.5, то к ней вообще не должны коррекции применяться. Это значит, что, в общем виде, все эти стили для всех должны быть выключены. Мне может понадобиться включить какой-нибудь из них для какой-нибудь темы в том и только в том случае, если я обнаружу явно, что у этой темы в этом месте проблема. Пример: полоски прокрутки. Только темы, сделанные на основе определенных виндовых, в том числе дефолтной, без кроссплатформенного кода, теряют полоски прокрутки под Мак, и к ним нужно применять мой стиль обводки полосок прокрутки, для всех остальных он вреден.
То есть, при активации кнопки, все темы, про которые она ничего не знает, а в начале это вообще все темы, должны по умолчанию иметь целую строку снятых флажков. Даже если соответствующие стили включены.
Отсутствует
Al_H
Ок. Пока разобрался только с природой самопроизвольного включения, здесь исправленный код в раздел "Код": http://pastebin.mozilla-russia.org/100445.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Антон.
1. Спасибо за “Block Site”. Кнопка получилась очень прикладистой.
2.
Не понял. В FF, кажется, нет функции upOneFolder.
Точно. Это была команда одной из кнопок расширения “Toolbar Buttons”. Самодельная кнопка работала, но после того как расширение было удалено – перестала. Как, кстати, и Рестарт Лисы. Какой код теперь нужно ставить в кнопку для перезагрузки? Или только с расширением?
3. Предложенный тобой код отработки модификаторов
this. onclick = function (event) { if (event. button > 0) return; if (event. ctrlKey) sg.Grab(new sg.FrameTarget(), sg.CaptureViewPort, new sg.SaveAction());; else if (event. shiftKey) sg.Grab(new sg.SelectionTarget(), sg.CaptureViewPort, new sg.SaveAction());; else sg.Grab(new sg.VisibleTarget(), sg.CaptureViewPort, new sg.SaveAction()); };
не работает
Вот такой:
{ if (e.button > 0) return; if(e.button == 0) sg.Grab(new sg.VisibleTarget(), sg.CaptureViewPort, new sg.SaveAction());; if(e.button == 0 && e.ctrlKey) sg.Grab(new sg.FrameTarget(), sg.CaptureViewPort, new sg.SaveAction());; if(e.button == 0 && e.shiftKey) sg.Grab(new sg.SelectionTarget(), sg.CaptureViewPort, new sg.SaveAction()); };
работает, но косо: если щелкнуть ctrl – клик или shift – клик, предлагает сначала сохранить как на просто клик, а только потом то, что прописано на ctrl или shift, соответственно.
Что я там накосячил? Я совершенно не знаю ни скриптов, ни зула :(
4. Еще :)
Возможно ли сделать так, чтобы картинка кнопки на onmouseover менялась в зависимости от того какой модификатор в это время нажат? Т.е. ctrl + onmouseover – одна картинка, просто onmouseover – другая. Это было бы наглядней, если все-таки получится применить варианты нажатий с модификаторами
5. Переделал кнопки All-in-One Sidebar - Page Info и Multipanel. Они работают. Но как и задумано в AiOS – открываются в боковой панели. У родных кнопок AiOS есть возможность открывать в новом табе – но только на ctrl +click. Как сделать, чтобы они открывались в табе по умолчанию?
6.
Если только сделать «обертку» для оригинальной функции открытия
можно узнать, что значит "обертка"? )
Вообще, кто-нибудь когданибудь открывал в табе менеджер скрапбука?
ДА, всегда - спасибо за науку.
Отсутствует
razoo, есть кнопки рестарта:
1. С диалогом подтверждения (Alt + Left click - без подтверждения):
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3ERestart%20%28with%20confirmation%29%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAA5xJREFUOE9Vk3tMW1Ucx09ZfMznFMTAH8rciNlGtomSGZOpy0xo0JXpomS/y+2ljw1oqdCxDRQ6oERhTKakQHSsgKUrfRAJpmPLVoogYwErQ8iUR2+5XSc0Osk2jWwp9OdpiW7e5JN7cnK+n3N+v5MjIvd/2e51RBSTFpfwWNYTInxbRDB+KRQOL4VRuB1C98pfoQ4SxkmyRnSbrGAS/X91Lw7uhCcLhtvEp2b+yLQJKP02gEpnALMcc5jeMYsvN/+C6yvHFohi8EvC9L/ysOZyz5oDQ6FVAbgTE4pGe7Wu35YP9l7H9+0+3Gvl8d37eM/G414Ljy8ZrobW5g1dy+ycW97ysQcJ2d8X+5TmsqW47/fwwbPXUUIXRcL7bD6UdPJRIuPIXHSeyt8yzeJnnkVM1Y1RgWwg/Z1W7y3NxSCKO7yYYfbSI3sxqeYnTCwZjbKxbgLFVJxBBRlUtoeWpR9ZxO26H5HEFw059zsX8E0zjztaZ3GHcQYfLRq8RTJaW8jmbDHZxIhFEkv32uLhUErLDKaZfPiazY+FlxZxS8kIkiz1AEqcwdUwJbIzeaPRQDsTR4khu4wvkD12J8kdXCYl9MiVE/hMkxclF2/gBs139wRJzdP4fNM0Pn5kGElyQUq0ua+3P0h2n7lAmPMhcojudpQ2rYwe+9g4JrfNYTzbi0RW4cEDLUGEWh+CfhpBPbAEinOJUUHaFx+Q1Dor2faJmWylbK42k036VV6sMpPtx22EKxy4I2+mgmoeQXcVQTOEwDnzo7cL8AgllvI0MPUpoDKmQqExBTSNyZB3Yj2wZc8RNtc5KjX4kdFTQekkQjlFcf4aQDfHQle8FOxxdLyT+9BVUNwh5Hx0RsiscPh3ag1XtkGOJZGwYMxXVI/dVRmEVYHuZ1rK1Apoh2+CyjWerXJ9L9eNXKBhk87qr6nqErSVdh5Ux1y7OWiIJVI4voGRdfVVWgJhZV2kjCmET/kVqOP/hJP8gqLZN6H9OuAutwesVQ7/Sb1DKD3U4MkBpu3VHKh6iNbJxMigfpdc2TNZ2u4P5zcKyJzgw1Av3GEM/htqY2C6rGv+UnX3/DdU0HS46UqFVGbK4qBk3X8PiTbpARnUpnNye39hjeeusoHHvJZfl1XtwZtHOoO8zjH/w+FTU+fUuv7T2VJTLgdHn6UZ0f9eckTCQvlWFhpKOWWPR65xLVH+pgQV6rPjrNz6OQe1YhbKEujamH/D/wBqNRb8pCuFJAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20*****%20VARS%20*****%20//%0A%0Avar%20prompts%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/prompt-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPromptService%29%3B%0A%0A%0A%0A%0A//%20*****%20FUNCTIONS%20*****%20//%0A%0Afunction%20createBrandingBundle%28%29%20%7B%0A%20%20%20%20var%20myBrandingPath%20%3D%20null%3B%0A%20%20%20%20var%20myStringBundleService%20%3D%20Components.classes%5B%22@mozilla.org/intl/stringbundle%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIStringBundleService%29%3B%0A%20%20%20%20%0A%20%20%20%20myBrandingPath%20%3D%20%22chrome%3A//branding/locale/brand.properties%22%0A%20%20%20%20return%20myStringBundleService.createBundle%28myBrandingPath%29%3B%0A%7D%0A%0A%0Afunction%20getWindowType%28%29%20%7B%0A%20%20%20%20//%20Relies%20on%20Branding%20Code%20so%20can%20not%20be%20run%20on%20startup%0A%20%20%20%20var%20myBrandStrings%20%3D%20createBrandingBundle%28%29%3B%0A%20%20%20%20var%20thisBrandShortName%20%3D%20myBrandStrings.GetStringFromName%28%22brandShortName%22%29%0A%20%20%20%20switch%20%28thisBrandShortName%29%20%7B%0A%20%20%20%20%20%20case%20%22Mozilla%20Thunderbird%22%3A%0A%20%20%20%20%20%20case%20%22Shredder%22%3A%0A%20%20%20%20%20%20case%20%22Thunderbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22mail%3A3pane%22%3B%0A%20%20%20%20%20%20case%20%22Nvu%22%3A%0A%20%20%20%20%20%20%20%20return%20%22composer%3Ahtml%22%3B%0A%20%20%20%20%20%20case%20%22Calendar%22%3A%0A%20%20%20%20%20%20case%20%22Sunbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22calendarMainWindow%22%3B%0A%20%20%20%20%20%20case%20%22eMusic%20Download%20Manager%22%3A%0A%20%20%20%20%20%20case%20%22eMusic%20Remote%22%3A%0A%20%20%20%20%20%20%20%20return%20%22emusic%3Awindow%22%3B%0A%20%20%20%20%20%20case%20%22Songbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22Songbird%3AMain%22%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20return%20%22navigator%3Abrowser%22%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%0Afunction%20Restart%28%29%0A%7B%0A%20%20%20%20//%20Notify%20all%20windows%20that%20an%20application%20quit%20has%20been%20requested.%0A%20%20%20%20var%20os%20%3D%20Components.classes%5B%22@mozilla.org/observer-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIObserverService%29%3B%0A%20%20%20%20var%20cancelQuit%20%3D%20Components.classes%5B%22@mozilla.org/supports-PRBool%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsISupportsPRBool%29%3B%0A%20%20%20%20os.notifyObservers%28cancelQuit%2C%20%22quit-application-requested%22%2C%20%22restart%22%29%3B%0A%0A%20%20%20%20//%20Something%20aborted%20the%20quit%20process.%0A%20%20%20%20if%20%28cancelQuit.data%29%0A%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20var%20wm%20%3D%20Components.classes%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIWindowMediator%29%3B%0A%20%20%20%20var%20windows%20%3D%20wm.getEnumerator%28%22%22%29%3B%0A%0A%20%20%20%20var%20windowType%20%3D%20getWindowType%28%29%3B%0A%0A%20%20%20%20while%20%28windows.hasMoreElements%28%29%29%20%7B%0A%20%20%20%20%20%20var%20myConfigWindow%20%3D%20windows.getNext%28%29.QueryInterface%28Components.interfaces.nsIDOMWindowInternal%29%3B%0A%20%20%20%20%20%20if%20%28myConfigWindow.document.documentElement.getAttribute%28%22windowtype%22%29%20%21%3D%20windowType%29%20%7B%0A%20%20%20%20%20%20%20%20%20myConfigWindow.close%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28%22@zeniko/crashrecoveryservice%3B1%22%20in%20Components.classes%29%20%7B%0A%20%20%20%20%20%20nsPreferences.setBoolPref%28%22extensions.crashrecovery.resume_session_once%22%2C%20true%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20appStartup%20%3D%20Components.interfaces.nsIAppStartup%3B%0A%20%20%20%20Components.classes%5B%22@mozilla.org/toolkit/app-startup%3B1%22%5D%0A%20%20%20%20%20%20.getService%28appStartup%29.quit%28appStartup.eRestart%20%7C%20appStartup.eAttemptQuit%29%3B%0A%0A%20%20%20%20return%20true%3B%0A%7D%0A%0A%0A%0A%0A//%20*****%20MOUSE%20HANDLING%20*****%20//%0A%0Athis.leftclick%20%3D%20function%28evt%29%20%7B%0A%20%20var%20RestartProceed%20%3D%20prompts.confirm%28null%2C%20%22Restart%20Firefox%22%2C%20%22Restart%20now%3F%22%29%3B%0A%20%20if%20%28RestartProceed%29%20%7B%0A%20%20%20%20Restart%28%29%3B%0A%20%20%7D%0A%7D%0A%0Athis.aleftclick%20%3D%20function%28evt%29%20%7B%0A%20%20Restart%28%29%3B%0A%7D%0A%0A%0A%0A%0A//%20*****%20INITIALISATION%20*****%20//%0A%0A%0A//%20%u0415%u0441%u043B%u0438%20%u0436%u0435%20%u043D%u0430%u0434%u043E%20%u0438%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0437%u0430%u0434%u0435%u0440%u0436%u043A%u0443%20%u0434%u043B%u044F%20%u043E%u0442%u0434%u0435%u043B%u044C%u043D%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043C%u043E%u0436%u043D%u043E%20%u043D%u0430%u043F%u0438%u0441%u0430%u0442%u044C%0A%0Athis.%20gQuot%20%3D%20%7B%7D%3B%0Athis.%20gQuot.%20__proto__%20%3D%20custombuttons.%20gQuot%3B%0Athis.%20gQuot.%20dcDelay%20%3D%200%3B%0Athis.%20setAttribute%20%28%27onclick%27%2C%20%27this.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0A%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*%0A%0A%20%20Left%20%20%20%20%20%3D%20Restart%20application%20with%20confirmation%20dialogue%0A%20%20Alt+Left%20%3D%20Restart%20application%0A%0A%20%20Rawny%20%5E%5E%0A%0A*/%0A%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E
2. Restart Tabbed:
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3ERestart%20Tabbed%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACwUlEQVQ4y42T20tUURTGv7PPPuds5+ZcdDyOY44z4yUsGbuZSHQxCqOCiiJ6iqAXX3vqLwiKDIkeo3+geg4KEoMQLwhSXiqyJphxjmPizDijc87ZuwctyQu4X9ZefHy/xVqLJWMv7zZz4KCsYNI2t0pkL/6qisCZkEvvww0326rRnQx19+rCsWA87mXekMQlBFjgfFei4+bQxGjXdO3co7GBoeHdAXeg97Sdfry/JXaIs6IfAlCJxiw9rR71Ri4qYI6xs1+u4918YRug+X5z6/GmzoH64+5zGfMbaImVISRQiZJfC8twWwEqy6oflmAAtgMa/Y0JV7Uz8TWVRKVRPVVYLL0ggloOSTkZb2m/+Hl6bmT2S/IBBjPZHVvIZ1f0/M9SQbWqspPfvz6Zmp95s0otIyRi2Q8jk8WFpexT3acXIle6mrWCSM2+HS7If829vRcSh8Idd91lF2FFVuKWtU9UkFOeomvmAGJtbf7Y/mBDzdWeE523PMR7Sc3Z9U0N0ffSuvmyo6kp/qi//2FfqVzCy9GXWJINmBlSHp+YeB12hU/VhHTdjPyGO25i4ZUPuTkDs5+nGygAKAojmsZo2Srj/dQg0vIPpDwz8GkhNeR3XuV8maboEkhVEcrPFmSSBjxEBiGqSgGgstIfrKurbycSgUpUrOYtZMwcqBWAuUpUCAIqNOjz7SimyjgSD0MIAY878JwCgNPpIdFolChUQXdrN9KLBtYMICCC0Ct1uCs8kISEQMiHqg4vmKIBEBgeHndQAGDMCUoVAABTNNzovoZPc9N4N/4Rx1oPo9rjA+ccnHPYtg3btgEIyLKCvzOALG9uVCYEbZEW1Ppq4NAqdr0RQuR1gKY5sLZmW+l0tiwE/6/aaiEHzu2NnP/7CyFgmsKiG6RsMmk8W1lZ04UQ4BwAODgXEEIAWI/r2maez5eMP+y1LNBcwVPrAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%20%20%0A%0A%0A//this.style.opacity%20%3D%20%27.65%27%3B%0A//this.setAttribute%28%22onmouseover%22%2C%20%22if%20%28custombuttons%29%20custombuttons.ButtonBrt%28event%29%3B%22%20%29%3B%0A//this.setAttribute%28%22onmouseout%22%2C%20%22if%20%28custombuttons%29%20custombuttons.ButtonDim%28event%29%3B%22%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%0A//%20Code%20from%20codefisher.org%20button%0Avar%20restart_tabbed_g%20%3D%20function%20%28%29%20%7B%0A%20%20var%20Cc%20%3D%20Components.classes%3B%0A%20%20var%20Ci%20%3D%20Components.interfaces%3B%0A%20%20var%20wm%20%3D%20Cc%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D.getService%28Ci.nsIWindowMediator%29%3B%0A%20%20var%20prefs%20%3D%20Cc%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Ci.nsIPrefBranch%29%3B%0A%20%20var%20startup%20%3D%20Ci.nsIAppStartup%3B%0A%20%20var%20home%20%3D%20%22browser.startup.homepage%22%3B%0A%20%20var%20old_home%20%3D%20%22extension_buttons.old_home%22%3B%0A%20%20var%20others%20%3D%20%22extension_buttons.others%22%3B%0A%20%20var%20lock%20%3D%20%22extension_buttons.lock%22%3B%0A%20%20var%20browser_window%20%3D%20%22navigator%3Abrowser%22%3B%0A%20%20var%20do_quit%20%3D%20function%20%28flag%29%20%7B%0A%20%20%20%20prefs.setBoolPref%28lock%2C%20false%29%3B%0A%20%20%20%20Cc%5B%22@mozilla.org/toolkit/app-startup%3B1%22%5D.getService%28startup%29%0A%20%20%20%20%20%20%20.quit%28startup.eAttemptQuit%20%7C%20%28flag%20%3F%20startup.eRestart%20%3A%200%29%29%3B%0A%20%20%7D%3B%0A%20%20var%20do_restart%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20do_quit%28true%29%3B%0A%20%20%7D%3B%0A%20%20var%20do_exit%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20do_quit%28false%29%3B%0A%20%20%7D%3B%0A%20%20var%20collect_urls%20%3D%20function%20%28win%29%20%7B%0A%20%20%20%20var%20url%20%3D%20%22%22%3B%0A%20%20%20%20var%20ntabs%20%3D%20win.gBrowser.mPanelContainer.childNodes.length%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20ntabs%3B%20++i%29%20%7B%0A%20%20%20%20%20%20var%20b%20%3D%20win.gBrowser.getBrowserAtIndex%28i%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20url%20+%3D%20b.currentURI.spec%20+%20%22%7C%22%3B%0A%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%0A%20%20%20%20%20%20//%20ignore%20e%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20url%20%3D%20url.replace%28/%5C%7C%24/%2C%20%22%22%29%3B%0A%20%20%20%20return%20url%3B%0A%20%20%7D%3B%0A%20%20var%20collect_other_windows%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20var%20enumvar%20%3D%20wm.getEnumerator%28browser_window%29%3B%0A%20%20%20%20var%20out%20%3D%20%5B%5D%3B%0A%20%20%20%20while%20%28enumvar.hasMoreElements%28%29%29%20%7B%0A%20%20%20%20%20%20var%20win%20%3D%20enumvar.getNext%28%29%3B%0A%20%20%20%20%20%20if%20%28win%20%21%3D%20window%29%20%7B%0A%20%20%20%20%20%20%20%20out.push%28win%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20out%3B%0A%20%20%7D%3B%0A%20%20var%20x_escape%20%3D%20function%20%28s%29%20%7B%0A%20%20%20%20return%20s.replace%28/%5B%3E%5C%5C%5D/g%2C%20function%20%28x%29%20%7B%20return%20%22%5C%5C%22%20+%20%28x%20%3D%3D%20%22%3E%22%20%3F%20%22%7E%22%20%3A%20x%29%3B%20%7D%29%3B%0A%20%20%7D%3B%0A%20%20var%20x_unescape%20%3D%20function%20%28s%29%20%7B%0A%20%20%20%20return%20s.replace%28/%5C%5C%28.%29/g%2C%20function%20%28_%2C%20x%29%20%7B%20return%20x%20%3D%3D%20%22%7E%22%20%3F%20%22%3E%22%20%3A%20x%3B%20%7D%29%3B%0A%20%20%7D%3B%0A%20%20var%20save_state%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20prefs.setBoolPref%28%27extension.tbutton.restart.do.load%27%2Ctrue%29%3B%0A%20%20%20%20prefs.setCharPref%28others%2C%20collect_other_windows%28%29.map%28%0A%20%20%20%20%20%20function%20%28w%29%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%3E%22%20+%20x_escape%28collect_urls%28w%29%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%29.join%28%22%22%29%29%3B%0A%20%20%20%20var%20prev%20%3D%20prefs.getCharPref%28home%29%3B%0A%20%20%20%20var%20cur%20%3D%20collect_urls%28window%29%3B%0A%20%20%20%20prefs.setCharPref%28home%2C%20cur%20%3D%3D%20%22%22%20%3F%20%22about%3Ablank%22%20%3A%20cur%29%3B%0A%20%20%20%20prefs.setCharPref%28old_home%2C%20prev%29%3B%0A%20%20%7D%3B%0A%20%20return%20%7B%0A%20%20%20%20exec%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20%20save_state%28%29%3B%0A%20%20%20%20%20%20%20%20do_restart%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20exit%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20%20save_state%28%29%3B%0A%20%20%20%20%20%20do_exit%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20restore_state%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20%20prefs.setBoolPref%28%27extension.tbutton.restart.do.load%27%2Cfalse%29%3B%0A%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20prefs.getBoolPref%28lock%29%3B%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20prefs.setBoolPref%28lock%2C%20true%29%3B%0A%20%20%20%20%20%20var%20orig%20%3D%20prefs.getCharPref%28old_home%29%3B%0A%20%20%20%20%20%20if%20%28orig%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20%20%20%20%20prefs.setCharPref%28home%2C%20orig%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20prefs.setCharPref%28old_home%2C%20%22%22%29%3B%0A%20%20%20%20%20%20var%20saved%20%3D%20prefs.getCharPref%28others%29%3B%0A%20%20%20%20%20%20var%20chunks%20%3D%20saved.match%28/%3E%5B%5E%3E%5D*/g%29%3B%0A%20%20%20%20%20%20if%20%28chunks%20%26%26%20chunks%20%21%3D%20%27%27%20%26%26%20chunks.length%20%21%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20var%20wins%20%3D%20chunks.map%28%0A%20%20%20%20%20%20%20%20function%20%28p%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20return%20x_unescape%28p.substr%281%29%29.split%28%22%7C%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20wins.forEach%28%0A%20%20%20%20%20%20%20%20function%20%28w%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20window.open%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28w.lenth%20%21%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20tb%20%3D%20wm.getMostRecentWindow%28browser_window%29.getBrowser%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20first%20%3D%20w.shift%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tb.loadURI%28first%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20w.forEach%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20function%20%28url%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tb.addTab%28url%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20prefs.setCharPref%28others%2C%20%22%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%7D%28%29%3B%0A%0Avar%20prefs%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D%0A%20%20%20%20%20%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Aif%20%28prefs.getBoolPref%28%27extension.tbutton.restart.do.load%27%29%20%3D%3D%20true%29%20%7B%0A%20%20%20%20addEventListener%28%22load%22%2C%20restart_tabbed_g.restore_state%2C%20false%29%3B%0A%7D%0A%0Arestart_tabbed_g.exec%28%29%3B%0A%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E
P.S. Предлагаю потестить свою сборку Firefox Portable 3.5.1, которая существует благодаря данной теме.
Отредактировано 3Jlou (01-08-2009 13:22:53)
Отсутствует
razoo
3. Предложенный тобой код отработки модификаторов
Выделить кодКод:
this. onclick = function (event) { if (event. button > 0) return; if (event. ctrlKey) sg.Grab(new sg.FrameTarget(), sg.CaptureViewPort, new sg.SaveAction());; else if (event. shiftKey) sg.Grab(new sg.SelectionTarget(), sg.CaptureViewPort, new sg.SaveAction());; else sg.Grab(new sg.VisibleTarget(), sg.CaptureViewPort, new sg.SaveAction()); };не работает
Я не обратил внимания на удвоенные точки с запятой. Сделай одинарные - будет работать.
Добавлено 01-08-2009 14:30:45
razoo
2.
Anton пишетНе понял. В FF, кажется, нет функции upOneFolder.
Точно. Это была команда одной из кнопок расширения “Toolbar Buttons”. Самодельная кнопка работала, но после того как расширение было удалено – перестала. Как, кстати, и Рестарт Лисы. Какой код теперь нужно ставить в кнопку для перезагрузки? Или только с расширением?
var href = window.content.document.location.href; if (href.indexOf("index") != -1) { href = href.substring(0, href.indexOf("index")); } href = href.substring(0, href.substring(0, href.length - 1).lastIndexOf("/") + 1); if (!href.match(/:\/\/$/)) { window.content.document.location = href; }
Что касается неактивности кнопки «когда выше подняться некуда» - сделать можно, но неактивное состояние кнопки при переключении на вкладку где «есть куда подняться» так и останется неактивным.
upd.:Прошу прощения, выше был вопрос о кнопке для перезагрузки, а я поместил код для upOneFolder
Кнопка для рестарта - в сообщении 3Jlou (1-й код): http://forum.mozilla-russia.org/viewtop … 54#p359754
Отредактировано Anton (01-08-2009 17:03:46)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует