Есть код кнопки - меню.
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%3EForum%20Links%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%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//------/images-------%0Amozpic%3D%27data%3Aimage/x-icon%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D%27%3B%0Aoszpic%3D%27data%3Aimage/x-icon%3Bbase64%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%27%0Aruboardpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAACiSxgAnUcUAIk5AgC0XSgAslkmALdhKgCVQQ0AuGMsAI07BgCPPQcAuWQsAIc3AAD///8AqlAfALFWJACINwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKBQAPCwsLCwsLCwsLCwoKCgcNAgsLCwsLCwsLCwsKCgoKBAgLCwsLCwsLCwsLCgoKCgMGCwsLCwsLCwsLCwoMDAoFAQwMCwsMDAwMDAsKDAwKBwwMCwsMDAsLDAwLCgwMCgwMBgILDAwLCwwMCwoMDAwMDA0JCwwMCwsMDAsKDAwKCgwMAAIMDAsLDAwLCgwMCgoMDAQBAgsLCwsLCwoMDAwMDAoHBAELCwsLCwsKCgoKCgoKCgoEAQILCwsLCgoKCgoKCgoKBwMBCAsLCwoKCgoKCgoKCgoKAwAICwsKCgoKCgoKCgoKCgoDDQYPCgoKCgoKCgoKCgoKCgUOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%27%0Aixbtpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAA////AJxRUQChU1QAmE1NAJFHRwCjWloAhjw8AJ5NTgCkVlcAlUlKAKhVVwCoVlgAoE1PAKlcXQC2aGkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAIDgcAAAAAAAAAAAAAAAALDA4HDgAAAAAAAAAAAAAKAgAAAAAAAAAAAAAAAAAEAwEBAQEBAgMAAAAAAAAECgQCAQEBAAICAgAAAAACBAMODgEBAQALCwsMAAAFBQQKCAgBAQEACAgNDQ0AAAIDAgkBAQEBAwsLCwwAAAAABQoCCgoAAAAICAgAAAAAAAAGBgUBAQEACQkAAAAAAAAAAAQHAQEBBAgAAAAAAAAAAAAABQYGAgIAAAAAAAAAAAAAAAADBAUAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9/AAD+PwAA/B8AAPgPAADwBwAA4AMAAMABAACAAAAAwAEAAOADAADwBwAA+A8AAPwfAAD+PwAA/38AAP//AAA%3D%27%0Aoverclpic%3D%27data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AeQAAAAAAAAB5AAAAAAAAAHmQAAAAAAAAeZkAAAAAAABwmQAAAAAACXCZkAAAAACZd5mZAAAACZl3CZmQAACZmXdwmZmZmZmZd3CZmZmZmZl3dwmZmZmZkHd3cAmZmZkAB3d3AAmZAAcAd3d3AAB3cAAHd3d3d3AAAAAHd3dwAAA//wAAP/8AAB//AAAP/wAAT/4AAEf8AAAD+AAAIfAAABAAAAAQAAAACAEAAAYDAACDjgAAwPEAAOAHAAD4HwAA%27%0A//------/images-------%0A%0Avar%20links%3Dnew%20Array%3B%0A//------menu%20items--------%0Alinks.push%28%5B%27Mozilla%20Forum%27%2C%20mozpic%2C%20%27http%3A//forum.mozilla-russia.org/%27%5D%29%3B%0Alinks.push%28%5B%27Oszone%20Forum%27%2C%20oszpic%2C%20%27http%3A//forum.oszone.net/%27%5D%29%3B%0Alinks.push%28%5B%27Ruboard%20Forum%27%2C%20ruboardpic%2C%20%27http%3A//forum.ru-board.com/%27%5D%29%3B%0Alinks.push%28%5B%27Ixbt%20Forum%27%2C%20ixbtpic%2C%20%27http%3A//forum.ixbt.com/%27%5D%29%3B%0Alinks.push%28%5B%27Overclockers%20Forum%27%2C%20overclpic%2C%20%27http%3A//forums.overclockers.ru/%27%5D%29%3B%0A//links.push%28%27separator%27%29%3B%0A//------/menu%20items-------%0A%0Avar%20nMItem%3Dfunction%28label%2Cimg%2Clink%2Cargs%2Cobj%29%7B%0A%20%20var%20m%3Ddocument.createElement%28%27menuitem%27%29%3B%0A%20%20m.setAttribute%28%27label%27%2Clabel%29%3B%0A%20%20m.f%3Dobj.newTab.bind%28obj%29%3B%0A%20%20m.setAttribute%28%27oncommand%27%2C%27this.f%28%22%27+link+%27%22%2C%22%27+args+%27%22%29%27%29%3B%0A%20%20m.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20m.setAttribute%28%27image%27%2Cimg%29%3B%0A%20%20m.tooltipText%20%3D%20label%3B%0A%20%20return%20m%3B%0A%7D%0A%0Athis.newTab%3Dfunction%28link%2Cargs%29%7B%0Avar%20tab%20%3D%20getBrowser%20%28%29.%20addTab%20%28link%29%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20tab%3B%0A%7D%0A%0A%0Avar%20mP%3Ddocument.createElement%28%27menupopup%27%29%3B%0Afor%20%28var%20i%3D0%3Bi%3Clinks.length%3Bi++%29%7B%0A%20if%20%28links%5Bi%5D%20%3D%3D%27separator%27%29%7B%0A%20%20mP.appendChild%28document.createElement%28%27menuseparator%27%29%29%3B%0A%20%7Delse%7B%0A%20%20if%20%28%21links%5Bi%5D%20%5B2%5D%29%20links%5Bi%5D%20%5B2%5D%3D%27%27%3B%0A%20%20mP.appendChild%28nMItem%28links%5Bi%5D%20%5B0%5D%2Clinks%5Bi%5D%20%5B1%5D%2Clinks%5Bi%5D%20%5B2%5D%2Clinks%5Bi%5D%20%5B3%5D%2Cthis%29%29%3B%0A%20%7D%0A%7D%0A%0A%0Athis.appendChild%28mP%29%3B%0A//this.%20setAttribute%20%28%22popup%22%2C%20mP.%20id%20%3D%20%22cbforumlinks-%22%20+%20this.%20id%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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
У меня элементы меню (ссылки) открываются всегда в новой вкладке.
Как можно сделать так, чтобы по ЛКМ в текущей, а по СКМ в новой вкладке ?
Отсутствует
vurdalak
Надо заменить:
на
и
this.newTab=function(link,args){ var tab = getBrowser (). addTab (link); getBrowser (). selectedTab = tab;
на
this.newTab=function(event,link,args){ var where = whereToOpenLink (event); openUILinkIn (link, where);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо
А чтобы после кликанья средней кнопкой меню сразу же убиралось, как после ЛКМ ?
P.S. Как сделать чтобы tooltiptext обрезался при показе , скажем до 20 символов, если это возможно ?
Отредактировано vurdalak (18-10-2009 14:34:37)
Отсутствует
Спасибо
А чтобы после кликанья средней кнопкой меню сразу же убиралось, как после ЛКМ ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Всем привет!
А как можно реализовать вот такую задачу. У меня есть 10 папок с автоматическим поиском:
FOLDER1
FOLDER2
FOLDER3
...
FOLDER10
В дереве папок я добавил колонку "Всего", в которой отображается сколько писем находится в каждой из папок с автоматическим поиском (в каждую из папок попадает письма с определенной меткой)
Проблема: для того чтобы это значение "всего" обновилось (например, после того как на очередном письме была поставлена новая метка), необходимо кликнуть на папку FOLDERX, похоже, что галка "Поиск онлайн" в данной ситуации не помогает.
Можно ли сделать некий workaround, чтобы при нажатии на кнопку, происходил цикл по этим папкам и происходило "взбадривание" и, соответственно, пересчет показателя "всего" для каждой из папок. Другими словами, можно ли для конкретной папки с автоматическим поиском вызвать процедуру, которая выполняла бы те же действия, что происходят, когда мы кликаем на папку с автоматическим поиском....?
Спасибо
Отсутствует
Поддерживаю. МозБекапом не сохраняются кнопки
Почему не сохраняется, если при выборе того что сохранять нажать на кнопку "Неизвестные файлы" то там можно будет выбрать папку custombuttons, где кнопки хранятся
Отсутствует
Почему не сохраняется, если при выборе того что сохранять нажать на кнопку "Неизвестные файлы" то там можно будет выбрать папку custombuttons, где кнопки хранятся
Где в МозБекапе кнопка "Неизвестные файлы"?
Отсутствует
Друзья, а какой код в кнопке надо написать, чтобы для выделенного сообщения поставилась метка.
Например есть label с идентификатором 1 и названием "Срочное", что надо написать в кнопке, чтобы эта метка появилась.
Пытался распрасить код дополнения TagToolbar, чтобы понять это, но что-то у меня не получилось понять. Спасибо
Отсутствует
Еще вопрос Что надо написать в коде кнопки, чтобы в диалоге создания письма происходило то же действие, что и при выборе в меню
Настройки/формат/<Выбор формата составления письма>
На сколько я понял, вызывается вот эта функция:
function OutputFormatMenuSelect(target)
{
if (gMsgCompose)
{
var msgCompFields = gMsgCompose.compFields;
var toolbar = document.getElementById("FormatToolbar");
var format_menubar = document.getElementById("formatMenu");
var insert_menubar = document.getElementById("insertMenu");
var show_menuitem = document.getElementById("menu_showFormatToolbar");
if (msgCompFields)
switch (target.getAttribute('id'))
{
case "format_auto": gSendFormat = nsIMsgCompSendFormat.AskUser; break;
case "format_plain": gSendFormat = nsIMsgCompSendFormat.PlainText; break;
case "format_html": gSendFormat = nsIMsgCompSendFormat.HTML; break;
case "format_both": gSendFormat = nsIMsgCompSendFormat.Both; break;
}
gHideMenus = (gSendFormat == nsIMsgCompSendFormat.PlainText);
format_menubar.hidden = gHideMenus;
insert_menubar.hidden = gHideMenus;
show_menuitem.hidden = gHideMenus;
toolbar.hidden = gHideMenus ||
(show_menuitem.getAttribute("checked") == "false");
}
}
а что передавать в качестве target - кто бы знал
Отсутствует
Xvost пишетГде в МозБекапе кнопка "Неизвестные файлы"?
да вот же она:
http://pic.ipicture.ru/uploads/091021/t … RL37S2.png
Ясно. Просто у меня была более ранняя версия программы, где подобной кнопочки не было. Спасибо!
Отсутствует
mshubin
какой код в кнопке надо написать, чтобы для выделенного сообщения поставилась метка.
Например есть label с идентификатором 1 и названием "Срочное", что надо написать в кнопке, чтобы эта метка появилась.
Наверное, так:
Если это предопределенная метка, то
Если определённая пользователем, то
а что передавать в качестве target - кто бы знал
Пункт меню. Кроме того, ему ещё флажок надо ставить самостоятельно.
var target = document. getElementById ("format_plain"); OutputFormatMenuSelect (target); target. setAttribute ("checked", "true");
memini
А CustomButtons позволяет работать с файлами?
CustomButtons позволяет выполнить код javascript, назначенный кнопке. Платформа mozilla приложений предоставляет средства для работы с файлами, доступные среде исполнения javascript.
Так что можно сказать, что позволяет.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
okkamas_knife
нужно чтоб по клику левой кнопкой вываливалось меню со списком юзерагентов и при выборе он использовался
var меню = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.сменитьЮзерагент(event)"> <menuitem value="useragent1" label="юзерагент1"/> <menuitem value="useragent2" label="юзерагент2"/> <menuitem value="useragent3" label="юзерагент3"/> </menupopup>; меню = custombuttonsUtils. makeXML (меню); this. orient = "horizontal"; this. type = "menu"; this. appendChild (меню); this. сменитьЮзерагент = function (событие) { var юзерагент = событие. target. getAttribute ("value"); var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general."); ps. setCharPref ("useragent.override", юзерагент); }
Изменять надо строки
где value - строка юзерагента, label - её имя в меню.
можно ли каким либо образом в СВ задавать ширину кнопки и помещать на неё меняющийся текст?
Ширину изменить можно
в раздел "Инициализация".
Текст кнопки можно менять задавая значение атрибута label, при этом режим отображения кнопок в диалоге настройки панелей инструментов должен быть задан как "Значки и текст" или "Только текст".
Если этого достаточно, то можно вот так.
Отредактировано Anton (24-10-2009 16:14:31)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Друзья, а помогите кто-нибудь с таким кодом.
При нажатии на кнопку осуществляются следующие действия
1. В папках XXX,YYY,ZZZ (задаются в коде) осуществляется перебор всех писем в папке и при выполнении условия Тема письма содержит подстроку "Иван иванович" на письма ставится определенная пользователем метка "название_метки"
PS
Про возможности использования фильтров - знаю Они задачу не решают)) Просто алгоритм на самом деле будет более хитрый, чем просто найти подстроку "Иван иванович" ну это я уже сам))
Спасибо
Отсутствует
Anton
кстати, по поводу моего поста вот здесь ... заметил, что этот баг стабильно проявляется в следующей ситуации: открыть DOM инспектор - выбрать для исследования окно браузера - тыкнуть кнопку "Найти узел для исследования, щелкнув по нему" и выбрать какой-нибудь элемент интерфейса. Затем щелкнуть на кнопку закладок и немного полистать папки в закладка и появляется глюк. Исправлять конечно не прошу если дело темное, но если появятся идеи конечно будет лучше
Отсутствует
Затем щелкнуть на кнопку закладок и немного полистать папки в закладка и появляется глюк.
Вид – Показывать узлы доступности (забавный перевод)
включено?
У меня из-за этого был такой же глюк.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Поставил кнопку поиска, может кому пригодится:
LeftClick - поисковик в текущей вкладке
MiddleClick (Ctrl+LeftClick) - поисковик в новой вкладке
RightClick - поиск текста из буфера обмена в текущей вкладке
Ctrl+RightClick - поиск текста из буфера обмена в новой вкладке
Shift+RightClick - выбор поисковика
Ctrl+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%3EGoogle%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%252BTzvb2%252B%252Fne4dFJeBw0egA%252FfAJAfAA8ewBBegAAAAD%252B%252FPtft98Mp%252BwWsfAVsvEbs%252FQeqvF8xO7%252F%252F%252F63yqkxdgM7gwE%252FggM%252BfQA%252BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%252FQvq%252Bfz%252Bf%252F%252B%252B%252FZKhR05hgBBhQI8hgBAgAI9ewD0%252B%252Fg3pswAtO8Cxf4Kw%252FsJvvYAqupKsNv%252B%252Fv7%252F%252FP5VkSU0iQA7jQA9hgBDgQU%252BfQH%252F%252Ff%252FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%252Fv%252Fg6Nc%252Fhg05kAA8jAM9iQI%252BhQA%252BgQDQu6b97uv%252F%252F%252F7V8Pqw3eiWz97q8%252Ff%252F%252F%252F%252F7%252FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%252F%252B%252F%252F39%252F%252F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%252F%252B%252Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%252BooT8%252Fv%252F7%252F%252F%252FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%252BhwGfXifWvqz%252B%252Ff%252F58u%252Fev6Dt4tr%252B%252F%252F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%252FkwBChwHt4dv%252F%252F%252F728ei1bCi7VAC5XQ7kz7n%252F%252F%252F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%252F%252F%252F9%252F%252F%252FSqYK5UwDKZAS9WALIkFn%252B%252F%252F3%252F%252BP8oKccGGcIRJrERILYFEMwAAuEAAdX%252F%252Ff7%252F%252FP%252B%252BfDvGXQLIZgLEWgLOjlf7%252F%252F%252F%252F%252F%252F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%252F%252F%252F%252F7%252B%252Fu2bCTIYwDPZgDBWQDSr4P%252F%252Fv%252F%252F%252FP5GRuABAPkAA%252FwBAfkDAPAAAesAAN%252F%252F%252B%252Fz%252F%252F%252F64g1C5VwDMYwK8Yg7y5tz8%252Fv%252FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%252F%252FPvi28ymXyChTATRrIb8%252F%252F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA%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%0AsetTimeout%28function%28that%29%7B%0A/*%u521D%u671F%u8A2D%u5B9A%u30B3%u30FC%u30C9%uFF08%u30B9%u30BF%u30FC%u30C8%u30A2%u30C3%u30D7%u3067%u5B9F%u884C%uFF09*/%0A/*---------------%20Custom%20Buttons2%20Attributes%20Block%20Start%20----------------*/%0Athat.setAttribute%28%27persist%27%2C%22label%22%29%3B%0Athat.setAttribute%28%27author%27%2C%27Alice0775%27%29%3B%0Athat.setAttribute%28%27version%27%2C%2720071008.00%27%29%3B%0Athat.setAttribute%28%27homepage%27%2C%27http%3A//space.geocities.yahoo.co.jp/gl/alice0775%27%29%3B%0Athat.setAttribute%28%27dependency%27%2C%27null%27%29%3B%0Athat.setAttribute%28%27status%27%2C%27null%27%29%3B%0Athat.setAttribute%28%27public%27%2Ctrue%29%3B%0Athat.setAttribute%28%27help%27%2C%272%2Csearch%20w/%20Searchbar%20Text%20or%20Clipboard%20Text%27%29%3B%0A%0A//%u30A8%u30F3%u30B8%u30F3%u540D%u304B%u3089%u30A8%u30F3%u30B8%u30F3%u30AA%u30D6%u30B8%u30A7%u30AF%u30C8%u3092%u5F97%u308B%0Athat.getEngine%20%3D%20function%28aEngineName%29%7B%0A%20%20const%20nsIBSS%20%3D%20Components.interfaces.nsIBrowserSearchService%3B%0A%20%20const%20searchService%20%3D%20Components.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28nsIBSS%29%3B%0A%0A%20%20if%28aEngineName.toUpperCase%28%29%3D%3D%3D%22CURRENT%22%29%7B%0A%20%20%20%20try%7B%0A%20%20%20%20%20%20var%20searchBar%20%3D%20BrowserSearch.getSearchBar%28%29%3B%0A%20%20%20%20%7Dcatch%28e%29%7B%0A%20%20%20%20%20%20var%20searchBar%20%3D%20BrowserSearch.searchBar%3B%20%20//fx3%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28searchBar%29%20return%20%20searchBar.currentEngine%3B%0A%20%20%7Delse%7B%0A%20%20%20%20var%20engine%20%3D%20searchService.getEngineByName%28aEngineName%29%3B%0A%20%20%20%20if%20%28engine%29%20return%20engine%3B%0A%20%20%7D%0A%20%20//Default%0A%20%20return%20Components.classes%5B%27@mozilla.org/browser/search-service%3B1%27%5D.getService%28Components.interfaces.nsIBrowserSearchService%29.defaultEngine%3B%0A%7D%0A%0A//%u691C%u7D22%u30D0%u30FC%u306E%u30C6%u30AD%u30B9%u30C8%u3067%u691C%u7D22%0Athat.searchForSearchBarTextValue%20%3D%20function%28aEngine%2C%20aEvent%29%20%7B%0A%20%20var%20searchBar%20%3D%20document.getElementById%28%22searchbar%22%29%3B%0A%20%20if%28searchBar.hasAttribute%28%22empty%22%29%29%20return%20false%3B%0A%20%20keyword%20%3D%20searchBar.value%3B%0A%0A%20%20var%20submission%20%3D%20aEngine.getSubmission%28keyword%2C%20null%29%3B%0A%20%20if%20%28%20%28aEvent.button%20%3D%3D%201%20%7C%7C%20aEvent.ctrlKey%29%20%26%26%20gBrowser.currentURI.spec%20%21%3D%20%22about%3Ablank%22%29%0A%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20submission.postData%2C%20false%29%3B%0A%20%20else%0A%20%20%20%20gBrowser.loadURI%28submission.uri.spec%2C%20null%2C%20submission.postData%29%3B%0A%20%20content.focus%28%29%3B%0A%0A%20%20if%20%28keyword%29%20%7B%0A%20%20%20%20keyword%20%3D%20keyword.substring%280%2C1024%29%3B%0A%20%20%20%20searchBar.textbox._formHistSvc.addEntry%28searchBar.textbox.getAttribute%28%22autocompletesearchparam%22%29%2Ckeyword%29%3B%0A%20%20%7D%0A%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20aEvent.stopPropagation%28%29%3B%0A%20%20return%20true%3B%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u30C6%u30AD%u30B9%u30C8%u3092%u5F97%u308B%0Athat.getClipboardText%20%3D%20function%28%29%7B%0A%20%20try%20%7B%0A%20%20%20%20var%20clip%20%3D%20Components.classes%5B%22@mozilla.org/widget/clipboard%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIClipboard%29%3B%0A%20%20%20%20var%20trans%20%3D%20Components.classes%5B%22@mozilla.org/widget/transferable%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsITransferable%29%3B%0A%20%20%20%20trans.addDataFlavor%28%22text/unicode%22%29%3B%0A%20%20%20%20clip.getData%28trans%2C%20clip.kGlobalClipboard%29%3B%0A%0A%20%20%20%20var%20string%20%3D%20%7B%7D%3B%0A%20%20%20%20trans.getTransferData%28%22text/unicode%22%2C%20string%2C%20%7B%7D%29%3B%0A%20%20%20%20return%20string.value.QueryInterface%28Components.interfaces.nsISupportsString%29.data%3B%0A%20%20%7D%20catch%20%28e%29%20%7B%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u5185%u5BB9%u3067%u691C%u7D22%0Athat.searchForClipboardText%20%3D%20function%28aEngine%2C%20aEvent%29%20%7B%0A%20%20var%20keyword%20%3D%20that.getClipboardText%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%22%22%29%3B%0A%20%20if%20%28%21keyword%29%20return%20false%3B%0A%0A%20%20var%20searchBar%20%3D%20document.getElementById%28%22searchbar%22%29%3B%0A%20%20searchBar.value%20%3D%20keyword%3B%0A%20%20searchBar.removeAttribute%28%22empty%22%29%3B%0A%0A%20%20var%20submission%20%3D%20aEngine.getSubmission%28keyword%2C%20null%29%3B%0A%20%20if%20%28aEvent.ctrlKey%20%26%26%20gBrowser.currentURI.spec%20%21%3D%20%22about%3Ablank%22%29%0A%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20submission.postData%2C%20false%29%3B%0A%20%20else%0A%20%20%20%20gBrowser.loadURI%28submission.uri.spec%2C%20null%2C%20submission.postData%29%3B%0A%20%20content.focus%28%29%3B%0A%0A%20%20if%20%28keyword%29%20%7B%0A%20%20%20%20keyword%20%3D%20keyword.substring%280%2C1024%29%3B%0A%20%20%20%20searchBar.textbox._formHistSvc.addEntry%28searchBar.textbox.getAttribute%28%22autocompletesearchparam%22%29%2Ckeyword%29%3B%0A%20%20%7D%0A%0A%20%20aEvent.preventDefault%28%29%3B%0A%20%20aEvent.stopPropagation%28%29%3B%0A%20%20return%20true%3B%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%u30E1%u30CB%u30E5%u30FC%u306E%u4F5C%u6210%0Athat.makeSelectEngine%20%3D%20function%28%29%7B%0A%20%20%20const%20nsIBSS%20%3D%20Components.interfaces.nsIBrowserSearchService%3B%0A%20%20%20const%20searchService%20%3DComponents.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28nsIBSS%29%3B%0A%20%20%20var%20engines%20%3D%20searchService.getVisibleEngines%28%7B%20%7D%29%3B%0A%20%20%20var%20menupopup%20%3D%20document.getElementById%28%22button-contextpopup%22+that.id%29%3B%0A%20%20%20if%28menupopup%29%7B%0A%20%20%20%20%20while%28menupopup.lastChild%29%7Bmenupopup.removeChild%28menupopup.lastChild%29%3B%7D%0A%20%20%20%7Delse%7B%0A%20%20%20%20%20var%20menupopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20menupopup.setAttribute%28%27id%27%2C%22button-contextpopup%22+that.id%29%3B%0A%20%20%20%20%20that.appendChild%28menupopup%29%3B%0A%20%20%20%7D%0A%20%20%20for%20%28var%20i%20%3D%20%200%3B%20i%20%3Cengines.length%3B%20i++%29%20%7B%0A%20%20%20%20%20var%20name%20%3D%20engines%5Bi%5D.name%3B%0A%20%20%20%20%20if%28%20name.match%28/%7D/%29%20%26%26%20%21name.match%28/%7B/%29%20%7C%7C%20%21name.match%28/%7D/%29%20%26%26%20name.match%28/%7B/%29%20%7C%7C%20name.match%28/%5E-%7B2%2C%7D%7C%5E%u2015%7B2%2C%7D/%29%29%20continue%3B%0A%20%20%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27label%27%2Cname%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27oncommand%27%2C%22event.stopPropagation%28%29%3Bthis.parentNode.parentNode.setEngine%28%27%22+name+%22%27%29%3B%22%29%3B%0A%20%20%20%20%20menuitem.setAttribute%28%27onclick%27%2C%22event.stopPropagation%28%29%3B%22%29%3B%0A%20%20%20%20%20if%20%28engines%5Bi%5D.iconURI%29%20%20menuitem.setAttribute%28%22src%22%2C%20engines%5Bi%5D.iconURI.spec%29%3B%0A%20%20%20%20%20menupopup.appendChild%28menuitem%29%3B%0A%20%20%20%7D%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u9078%u629E%0Athat.setEngine%20%3D%20function%28name%29%7B%0A%20%20if%28%21name%29%20name%20%3D%20that.getAttribute%28%27label%27%29%3B%0A%20%20that.setAttribute%28%27label%27%2Cname%29%3B%0A%20%20that.aEngine%20%3D%20that.getEngine%28name%29%3B%0A%20%20that.setAttribute%28%27image%27%2Cthat.aEngine.iconURI.spec%29%3B%0A%20%20that.tooltipText%20%3D%20document.getAnonymousElementByAttribute%28document.getElementById%28%22searchbar%22%29%2C%22anonid%22%2C%22searchbar-stringbundle%22%29.getFormattedString%28%22searchtip%22%2C%20%5Bthat.aEngine.name%5D%29+%22%20L%3ACurrentTab%20Ctrl+L%2CM%3ANewTab%2C%20or%20R%3AClipBoard%2C%20Shift+LMR%3A%20Menu%22%3B%0A%0A%20%20var%20UI%20%3D%20Components.classes%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0A%20%20UI.charset%20%3D%20%22UTF-8%22%3B%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Components.interfaces.nsIPrefBranch%29%3B%0A%20%20xpref.setCharPref%28%22custombuttons.engine.name.%22+that.id%2C%20UI.ConvertFromUnicode%28name%29%29%3B%0A%7D%0A%0A//%u30A8%u30F3%u30B8%u30F3%u9078%u629E%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%u30E1%u30CB%u30E5%u30FC%u8868%u793A%0Athat.showSelectEngine%20%3D%20function%28node%29%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22button-contextpopup%22+that.id%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%0A%0A//%u30DC%u30BF%u30F3%u30E1%u30CB%u30E5%u30FC%u8868%u793A%0Athat.showPopup%20%3D%20function%28node%29%20%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%0A%0A//%u30A4%u30D9%u30F3%u30C8%u30CF%u30F3%u30C9%u30E9%0A//%20---------------%20%20%20Event%20Detect%20%20%20------------------%0Athat.handle%20%3D%20function%28event%29%20%7B%0A%20%20try%20%7B%0A%20%20%20%20if%28event.shiftKey%20%26%26%20event.button%3D%3D2%29%20%7B%0A%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20that.makeSelectEngine%28%29%3B%0A%20%20%20%20%20%20that.showSelectEngine%28this%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28event.shiftKey%20%29%20%7B%0A%20%20%20%20%20%20that.showPopup%28this%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20switch%28event.button%29%20%7B%0A%20%20%20%20case%200%3A%20//%20Left%20Click%0A%20%20%20%20%20%20that.searchForSearchBarTextValue%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20case%201%3A%20//%20Middle%20Click%0A%20%20%20%20%20%20that.searchForSearchBarTextValue%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20case%202%3A%20//%20Right%20Click%0A%20%20%20%20%20%20that.searchForClipboardText%28that.aEngine%2C%20event%29%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7Dcatch%28e%29%20%7Balert%28e%29%3B%7D%0A%20%20event.preventDefault%28%29%3B%0A%20%20event.stopPropagation%28%29%3B%0A%20%20return%20false%3B%0A%7D%0A%0A//%u8A2D%u5B9A%u3055%u308C%u305F%u30A8%u30F3%u30B8%u30F3%u3092%u30BB%u30C3%u30C8%0Atry%7B%20//Fx3%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-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%20%20%20%20%20.getService%28Components.interfaces.nsIPrefBranch2%29%3B%0A%7Dcatch%28e%29%7B%20//Fx2%0A%20%20var%20xpref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Components.interfaces.nsIPrefBranch%29%3B%0A%7D%0Avar%20UI%20%3D%20Components.classes%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0AUI.charset%20%3D%20%22UTF-8%22%3B%0Atry%7B%0A%20%20var%20name%20%3D%20xpref.getCharPref%28%22custombuttons.engine.name.%22+that.id%29%3B%0A%20%20that.setEngine%28UI.ConvertToUnicode%28name%29%29%3B%0A%7Dcatch%28e%29%7B%0A%20%20var%20name%20%3D%20that.getAttribute%28%27label%27%29%3B%0A%20%20%20%20%20%20%20%20that.setEngine%28name%29%3B%0A%7D%0A%0A//%u30AF%u30EA%u30C3%u30AF%u30A4%u30D9%u30F3%u30C8%u30BB%u30C3%u30C8%0Athat.setAttribute%28%22onclick%22%2C%20%22this.handle%28event%29%3B%22%29%3B%0A//%u30DC%u30BF%u30F3%u306E%u898B%u6804%u3048%0Athat.style.opacity%20%3D%20%27.65%27%3B%0Athat.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%0Athat.setAttribute%28%22onmouseover%22%2C%20%22this.style.opacity%20%3D%20%271%27%3B%20this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDHighlight%20ThreeDShadow%20ThreeDShadow%20ThreeDHighlight%3B%27%29%3B%22%20%29%3B%0Athat.setAttribute%28%22onmouseout%22%2C%20%22this.style.opacity%20%3D%20%27.65%27%3Bthis.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%22%20%29%3B%0Athat.setAttribute%28%22onmousedown%22%2C%20%22this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDShadow%20ThreeDHighlight%20ThreeDHighlight%20ThreeDShadow%3B%27%29%3B%22%29%3B%0Athat.setAttribute%28%22onmouseup%22%2C%20%22this.setAttribute%28%27style%27%2C%27border-color%3A%20ThreeDHighlight%20ThreeDShadow%20ThreeDShadow%20ThreeDHighlight%3B%27%29%3B%22%29%3B%0Athat.setAttribute%28%27style%27%2C%27border-color%3A%20transparent%3B%27%29%3B%0A%7D%2C1000%2C%20this%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%u4F7F%u3044%u65B9%0A/*%0A1.%20%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u6307%u5B9A%u65B9%u6CD5%0A%20%20%20%u65B9%u6CD51.%20%u30DC%u30BF%u30F3%u3092%u914D%u7F6E/%u8907%u88FD%u3057%2C%20Shift%u30AD%u30FC+%u53F3%u30AF%u30EA%u30C3%u30AF%3A%20%u30E1%u30CB%u30E5%u30FC%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%2C%20%u30A8%u30F3%u30B8%u30F3%u3092%u9078%u629E%0A%0A%20%20%20%u65B9%u6CD52.%20%u30DC%u30BF%u30F3%u3092%u914D%u7F6E/%u8907%u88FD%u3057%2C%20%u30DC%u30BF%u30F3%u7DE8%u96C6%u30A6%u30A4%u30F3%u30C9%u30A6%u306EName%u6B04%u306E%u5024%u3092%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u540D%u79F0%u3068%u3059%u308B%u3002%0A%20%20%20%20%20%20%20%20%20%20%u81EA%u52D5%u7684%u306B%u30A2%u30A4%u30B3%u30F3%u304C%u691C%u7D22%u30A8%u30F3%u30B8%u30F3%u306E%u3082%u306E%u306B%u306A%u308B%u3002%0A%0A2.%20%u691C%u7D22%u306E%u4ED5%u65B9%0A%20%20%20%u5DE6%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u73FE%u5728%u306E%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20%u4E2D%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20%u53F3%u30AF%u30EA%u30C3%u30AF%3A%20%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u73FE%u5728%u306E%u30BF%u30D6%u306B%u8868%u793A%0A%0A%20%20%20Ctrl%u30AD%u30FC+%u5DE6%u30AF%u30EA%u30C3%u30AF%3A%20%u691C%u7D22%u30D0%u30FC%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%20%20%20Ctrl%u30AD%u30FC+%u4E2D%u30AF%u30EA%u30C3%u30AF%3A%20%u30AF%u30EA%u30C3%u30D7%u30DC%u30FC%u30C9%u306E%u8A9E%u53E5%u3067%u691C%u7D22%u3057%2C%20%u65B0%u898F%u30BF%u30D6%u306B%u8868%u793A%0A%0A%20%20%20Shift%u30AD%u30FC+%u30AF%u30EA%u30C3%u30AF%3A%20%u30E1%u30CB%u30E5%u30FC%u30DD%u30C3%u30D7%u30A2%u30C3%u30D7%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%5Bsearch%20w/%20Searchbar%20Text%20or%20Clipboard%20Text%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E
Отсутствует
3Jlou
дополнить кнопку юзерагента
var меню = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.сменитьЮзерагент(event)"> <menuitem type="radio" value="useragent1" label="юзерагент1"/> <menuseparator/> <menuitem type="radio" value="useragent2" label="юзерагент2"/> <menuitem type="radio" value="useragent3" label="юзерагент3"/> </menupopup>; меню = custombuttonsUtils. makeXML (меню); this. orient = "horizontal"; this. type = "menu"; меню = this. appendChild (меню); var ua = ""; try { var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general."); ua = ps. getCharPref ("useragent.override"); for (var i = 0; i < меню. childNodes. length; i++) { if (меню. childNodes [i]. value == ua) { меню. childNodes [i]. setAttribute ("checked", "true"); break; } } } catch (e) {} this. сменитьЮзерагент = function (событие) { var юзерагент = событие. target. getAttribute ("value"); var ps = Components. classes ["@mozilla.org/preferences-service;1"]. getService (Components. interfaces. nsIPrefService). getBranch ("general."); ps. setCharPref ("useragent.override", юзерагент); }
Нужные юзерагенты надо заполнить самостоятельно.
okkamas_knife
1 каким образом мне присвоить переменной код определённой кнопки?(тот что выдаётся при выборе пункта меню копирование)
custombuttons.copyURI() выдаёт только код той кнопки в которой он запущен
А каким образом добывается эта самая "определенная кнопка", для которой надо получить URI, название, иконку ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
о, замечательная кнопка смены юзерагента, а можно еще спросить, как ее дополнить, чтобы при смене юзерагента иконка у кнопки менялась на свою для каждого юзерагента?
Отсутствует
Можно добавить перед break
this. image = меню. childNodes [i]. getAttribute ("image");
перед var юзерагент = событие. target. getAttribute ("value");
пунктам меню добавить атрибуты image:
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
okkamas_knife
Для кнопок, которые находятся на панелях:
var name, image, uri; var buts = document. getElementsByTagName ("toolbarbutton"); for (var i = 0; i < buts. length; i++) { if (buts [i]. getAttribute ("id"). indexOf ("custombuttons-button") == 0) { name = buts [i]. name; image = buts [i]. image || buts [i]. cbStdIcon; uri = buts [i]. URI; } }
Для кнопок в palette:
function setText (doc, nodeName, text, make_CDATASection) { var node = doc. getElementsByTagName (nodeName) [0], cds; if (!node) return; if (make_CDATASection) { try { cds = doc. createCDATASection (text || ""); } catch (e) { cds = doc. createTextNode (text || ""); } node. appendChild (cds); } else { node. textContent = text; } } var buts, doc, name, image, uri mode, code, initCode, accelkey, help; buts = custombuttons. palette. getElementsByTagName ("toolbarbutton"); for (var i = 0; i < buts. length; i++) { if (buts [i]. getAttribute ("id"). indexOf ("custombuttons-button") == 0) { name = buts [i]. getAttribute ("label"); image = buts [i]. getAttribute ("image") || buts [i]. getAttribute ("cb-stdicon"); mode = buts [i]. getAttribute ("cb-mode"); code = buts [i]. getAttribute ("cb-oncommand"); initCode = buts [i]. getAttribute ("cb-init"); accelkey = buts [i]. getAttribute ("cb-accelkey"); help = buts [i]. getAttribute ("Help") || buts [i]. getAttribute ("help") || ""; doc = document. implementation. createDocument ("", "", null); doc. async = false; doc. load ("chrome://custombuttons/content/nbftemplate.xml"); setText (doc, "name", name, false); setText (doc, "mode", mode, false); setText (doc, "image", image, true); setText (doc, "code", code, true); setText (doc, "initcode", initCode, true); setText (doc, "accelkey", accelkey, true); setText (doc, "help", help, true); var ser = new XMLSerializer (); var data = ser. serializeToString (doc); uri = "custombutton://" + escape (data); alert (uri); } } }catch(e){alert(e);}
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует