Там стандартные кнопки навигации ( которые уже есть в мозиле) , я попросил нестандартные
а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.
PS На всякий случай... картинку конвертируй в BASE64, а то удалишь иконку... это я так на всякий случай
Отредактировано Indomito (06-02-2011 07:45:48)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.
да я поняла уже потом как менять. Спасибо!
Отсутствует
а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.
PS На всякий случай... картинку конвертируй в BASE64, а то удалишь иконку... это я так на всякий случай
По той ссылке поставила себе кнопки,затем выбрала редактировать и вставила кнопку какую хотела. Нет, ничего не конвертировала, просто скачала иконки формата PNG
Отредактировано misha87 (06-02-2011 08:20:36)
Отсутствует
misha87 нажми ПКМ на кнопке - нажми Редактировать - нажми —»base64. В этом варианте иконка сохранится с кнопкой. Если ты переместишь иконку или просто её удалишь она останется в кнопке, так проще и удобнее чем ссылаться на абсолютные пути.
Посмотри тему Готовые кнопки для Custom Buttons | Форум Mozilla Россия
Для сравнения кнопка
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%0A%20%20%3Cname%3EBrowserBack%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0ABrowserBack%28event%29%3B%0A%7D%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отредактировано Indomito (07-02-2011 03:07:40)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Infocatcher может перенести
Attributes Tooltip (для секции «код»)
Показывает всплывающую подсказку со всеми атрибутами.
Использование:
Клик средней кнопкой мыши или левой с зажатым Ctrl открывает DOM Inspector
Нажатие Escape завершает работуДобавлено 16-01-2011 01:23:12
Attributes Inspector (для секции «код»)
Скрипт переименован, добавлена работа во всех окнах приложения, добавлена поддержка других приложений на движке gecko (тестировалось только в Thunderbird 3.1.7), улучшен внешний вид всплывающей подсказки, добавлена возможность запуска из контекста главного окна (например, через Mouse Gestures и аналоги).
Известные ограничения: динамические всплывающие подсказки не работают в Firefox 1.5 и 2.0.
из поста №2546 в топик Готовые кнопки с предварительным оформлением? Или они там есть уже, правда я не заметил их.
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Indomito
Добавил: http://forum.mozilla-russia.org/viewtop … 32#p470532
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Извиняюсь, что парю вас своими "хотелками", но всё же...
есть кнопка: Открытие адреса с выбором из меню(c иконками)
Собственно "хотелки" следующие:
1. Выпадающее меню повесить на правый клик (меню настроек кнопки по Shift+ПКМ или Ctrl+ПКМ);
2. Кнопка меняет иконку на соответствующую выбранному пункту меню => хотелось, чтобы не только менялась иконка, но и запоминался сам выбранный пункт меню (желательно и после перезапуска браузера) => левый клик по кнопке открывает запомненный пункт меню (при первом использовании кнопки активен 1-й пункт меню);
3. Ссылки из выпадающего меню должны открываться не во вкладках (как это реализовано в оригинальной кнопке), а в новом окне, параметры которого задаются в коде. Для примера привожу код кнопки вызова окна ICQ2Go:
var popup = {}; popup.launchPopout = function(url) { { s_options = "resizable=yes ,width=300 ,height=600 ,directories=no,titlebar=yes,scrollbars=no,status=no,menubar=no,toolbar=no,location=1"; } window.open(url,"_blank", s_options); } popup.launchPopout('http://c.icq.com/webicq/icq/WidgetMain.html?locale=ru-ru');
Отредактировано 3Jlou (07-02-2011 15:40:20)
Отсутствует
Вдруг кому-нибудь пригодится.
Увеличение количества строк в nsIPromptService.select()
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var selected = {}; if( Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService) .select( window, "Title", "Text", arr.length, arr, selected ) ) alert(selected.value);
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); var cssStr = <><![CDATA[ @-moz-document url("chrome://global/content/selectDialog.xul") { #list { height: 16em !important; } } ]]></> .toString(); var cssURI = makeURI("data:text/css," + encodeURIComponent(cssStr)); // chrome://global/content/contentAreaUtils.js if(!sss.sheetRegistered(cssURI, sss.USER_SHEET)) sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); var selected = {}; if( Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService) .select( window, "Title", "Text", arr.length, arr, selected ) ) alert(selected.value); sss.unregisterSheet(cssURI, sss.USER_SHEET);
С более точным стилем:
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var title = "Title"; var desc = "Text"; const listHeight = arr.length * 1.7 + "em"; var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); var cssStr = <><![CDATA[ @-moz-document url("chrome://global/content/selectDialog.xul") { :root[title="%title%"] #info\.txt[value="%desc%"] + vbox > #list { height: %height% !important; } } ]]></> .toString() .replace(/%title%/g, title) .replace(/%desc%/g, desc) .replace(/%height%/g, listHeight); var cssURI = makeURI("data:text/css," + encodeURIComponent(cssStr)); // chrome://global/content/contentAreaUtils.js if(!sss.sheetRegistered(cssURI, sss.USER_SHEET)) sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); var selected = {}; if( Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService) .select( window, title, desc, arr.length, arr, selected ) ) alert(selected.value); sss.unregisterSheet(cssURI, sss.USER_SHEET);
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const rowsCount = arr.length; var oSvc = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); var observer = { added: true, observe: function(subject, topic, data) { subject.addEventListener("load", this, false); }, handleEvent: function(e) { var doc = e.target; var win = doc.defaultView; win.removeEventListener("load", this, false); if(doc.location.href != "chrome://global/content/selectDialog.xul") return; oSvc.removeObserver(this, "domwindowopened"); this.added = false; var list = doc.getElementById("list"); if(list) list.setAttribute("rows", rowsCount); } }; oSvc.addObserver(observer, "domwindowopened", false); var selected = {}; if( Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService) .select( window, "Title", "Text", arr.length, arr, selected ) ) alert(selected.value); observer.added && oSvc.removeObserver(observer, "domwindowopened");
Отредактировано Infocatcher (09-02-2011 03:35:04)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher как я понял это а-ля копия твоего ЛС ко мне
PS понять бы как это всё сложить, хотя может быть это только мне не понятно )))
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
А еще у добавления стиля есть побочный эффект: пока открыт наш растянутый модальный диалог, можно (из другого окна) открыть еще один select, который тоже окажется растянутым.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
А блокировать ни как нельзя? Я только хотел тебе ответить с примером для самоутверждения, те "прав- не прав" и получил твой/этот ответ.
Добавлено 09-02-2011 00:35:54
Позже (подумав)....
А у Второй способ, ловим окно через nsIObserverService, аналог расширения userChromeJS - какие "подводные камни" ?
Отредактировано Indomito (09-02-2011 00:33:03)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
А блокировать ни как нельзя?
Блокировать что?
Если убрать стиль, окно должно сразу же перерисоваться. Следовательно, можно или добавить стиль только в конкретное окно (а это второй способ, потому что нужно «поймать» это конкретное окно), или сделать стиль более точным – например, привязаться к заголовку окна и тексту надписи:
@-moz-document url("chrome://global/content/selectDialog.xul") { :root[title="Title"] #info\.txt[value="Text"] + vbox > #list { height: 16em !important; } }
Разумеется, второе такое же окно с такими же надписями тоже окажется растянутым.
А у Второй способ [...] - какие "подводные камни" ?
Вроде бы, никаких.
Добавлено 09-02-2011 03:35:26
Добавил в исходное сообщение пример с уточненным стилем.
Отредактировано Infocatcher (09-02-2011 03:36:15)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher большое спасибо за помощь мне и не только мне
И сразу вопросик, думаю простой... надеюсь, к тебе и ко всем знает как решить проблему описанную ниже.
При создании/редактировании любой кнопки мы имеем 4-е секции: Код-Инициализация-Справка-Настройки кнопки. У меня вопрос именно по секции Справка, её обычно никто не использует, почему не понятно (я про тему Готовые кнопки). В неё можно прописать, ну хотя бы авторство, версию, дату создания, краткую справку по использованию, etc.
Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация, ну и как я предполагал меня послали -> chrome://custombuttons/content/cb2api.js ибо нужен ID кнопки и что то ещё... что я не очень понял. После отработки ПКМ и появления кон. меню функция/метод custombuttons.uChelpButton(); прекрасно сработал.
И так вопрос: Как из самой кнопки вызвать Справку именно по этой кнопке?
Конечно можно выводить информацию минуя Справку, но если есть у каждой кнопки такой метод, то как же его правильно использовать?
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Infocatcher большое спасибо за помощь мне и не только мне И сразу вопросик, думаю простой... надеюсь, к тебе и ко всем знает как решить проблему описанную ниже.При создании/редактировании любой кнопки мы имеем 4-е секции: Код-Инициализация-Справка-Настройки кнопки. У меня вопрос именно по секции Справка, её обычно никто не использует, почему не понятно (я про тему Готовые кнопки). В неё можно прописать, ну хотя бы авторство, версию, дату создания, краткую справку по использованию, etc.Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация, ну и как я предполагал меня послали -> chrome://custombuttons/content/cb2api.js ибо нужен ID кнопки и что то ещё... что я не очень понял. После отработки ПКМ и появления кон. меню функция/метод custombuttons.uChelpButton(); прекрасно сработал. И так вопрос: Как из самой кнопки вызвать Справку именно по этой кнопке?Конечно можно выводить информацию минуя Справку, но если есть у каждой кнопки такой метод, то как же его правильно использовать?
Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label> id = <id> (как в секции "Код" - /*Соde*/ и как в секции"Инициализация" - /*Initialization Code*/ ). Тогда каждая новая кнопка будет автоматически иметь активный раздел "Справка" с названием и id кнопки.
Отсутствует
imyax
Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label> id = <id>....
да было бы не плохо. Я кстати заметил что дата создания секции Справка от 2007, правда там вносились модификации от Anton (не датированные).
Добавлено 11-02-2011 03:09:04
PS А иначе никак не получится отловить ID? Ну экспорт, то работает, значит можно, только надо его уже считывать.
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация
custombuttons.uChelpButton = function ( oBtn ) //{{{ { // UPDATED: 11/8/2007 to accept oBtn as an arg. var Button = ( oBtn )? oBtn : document.popupNode;
Кнопка берется или из переданного аргумента, или из document.popupNode.
Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label> id = <id> (как в секции "Код" - /*Соde*/ и как в секции"Инициализация" - /*Initialization Code*/ ). Тогда каждая новая кнопка будет автоматически иметь активный раздел "Справка" с названием и id кнопки.
И в чем будет польза такой справки?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
И в чем будет польза такой справки?
согласен. В данной реализации нулевая, хотя можно воспользоваться для унификации кнопок.
И тут же вопрос, хотя ты говорил что экспортом/импортом не занимался, но... ну меня просто утомило редактировать код в самой кнопке, те как бы по простому реализовать считать содержимое секций Код и Инициализация в соответственные по названию файл типа code_<NAME>.js и init_<NAME>.js - хотя бы просто считать... точнее мне то нужно просто получить в двух переменных содержимое в нормальной кодировке (для Windows), а записать и тд я сам сделаю.
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
как бы по простому реализовать считать содержимое секций Код и Инициализация в соответственные по названию файл типа code_<NAME>.js и init_<NAME>.js - хотя бы просто считать
this. cbCommand — здесь код, this. cbInitCode — здесь код инициализации, все в UTF-8 в unicode.
Отредактировано Anton (11-02-2011 19:43:32)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
function makeURL (url) { var uri = makeURI (url); try { uri = uri. QueryInterface (Components. interfaces. nsIURL); } catch (e) { uri = null; } return uri; } var doc = gBrowser. contentDocument; var cdurl = makeURL (doc. location. href); cdurl. ref = ""; var links = doc. links; var inlinks = []; var curl; for (var i = 0; i < links. length; i++) { curl = makeURL (links [i]. href); if (curl && (curl. host == cdurl. host)) inlinks. push (links [i]. href); } if (inlinks. length != 0) { var ind = Math. floor (Math. random () * inlinks. length); loadURI (inlinks [ind], makeURL (gBrowser. contentDocument. location. href)); }
Данная кнопка открывают произвольную внутреннюю ссылку на активной странице, скажите пожалуйста можно ли каким-то образом прописать исключения, т.е. чтобы /page она не ходила (приравнивала к внешним) и некоторые другие? Заранее спасибо
Отсутствует
this. cbCommand — здесь код, this. cbInitCode — здесь код инициализации, все в unicode.
извиняюсь, видимо я что то не до понял или не верно сформулировал.
Помещаем this. cbCommand и this. cbInitCode в секцию Инициализация и получает кнопку в нормальном виде, но я то хотел иное сделать. Вызвать на другой, специально для этого сделанной кнопке функцию и передать ей cb-name, а получить две секции кода.
Сорри что туплю, но я не нашёл точки вызова.
PS По сути это урезанный Экспорт и Импорт в HTML
PPS Например this. label вернёт имя кнопки, но this это ссылка на текущий объект.
Отредактировано Indomito (12-02-2011 16:15:30)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
можно ли каким-то образом прописать исключения, т.е. чтобы /page она не ходила (приравнивала к внешним) и некоторые другие?
Можно, прописывать надо в этой строке:
Примерно так:
if (curl && (curl. host == cdurl. host) && (curl. spec != "некоторая другая ссылка"))
Добавлено 12-02-2011 19:02:26
Вызвать на другой, специально для этого сделанной кнопке функцию и передать ей cb-name, а получить две секции кода.
var buttonName = "setBackgroundColor"; var btn = document. getElementsByAttribute ("cb-name", buttonName) [0]; alert (btn. cbCommand + "\n---\n" + btn. cbInitCode);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Attributes Inspector 0.4.5 (2011-02-12)
Добавлена подсветка узла под курсором.
Добавлена навигация по DOM-дереву по Ctrl+Up/Ctrl+Down.
Добавлено подавление сторонних всплывающих подсказок.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Attributes Inspector 0.4.5.1 (2011-02-12)
Добавлено отключение при повторном запуске из того же окна (при работе без кнопки).
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует