okkamas_knife
в "готовых кнопках" есть такая Открытие адреса с выбором из меню
почему-то при попытке добавления ссылок в имени которых встречается знак &, кнопка перестает быть кликабельной
Например такой ссылки:
Отсутствует
Inko7
при попытке добавления ссылок в имени которых встречается знак &, кнопка перестает быть кликабельной
Знак & надо заменить последовательностью символов &
И еще, можно ли убрать поле меню, там где должны быть значки ссылок или наоборот, как добавить туда свои значки?
Добавить значок можно так:
Можно ли сделать шрифт некоторых строк жирным?
После makeXML можно добавить
Вместо 0 - индекс нужного элемента, индексация начинается с нуля и включает разделители.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Вместо 0 - индекс нужного элемента, индексация начинается с нуля и включает разделители.
Можно проще.
Хак:
this.type = "menu"; this.orient = "horizontal"; var menu = custombuttonsUtils.makeXML( <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <menuitem label="Item 0" style="font-weight: bold; text-decoration: underline;" /> <menuitem label="Item 1" style="font-style: italic;" /> <menuitem label="Item 2" /> </menupopup> ); this.appendChild(menu); Array.forEach( menu.getElementsByAttribute("style", "*"), function(mi) { mi.setAttribute("style", mi.getAttribute("style") + " "); } );
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Посмотрите, на код, два блока выделил
/*Initialization Code*/ //Добавить в закладки текущую страницу function lbMouse(){ try {PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId); } catch(e) { addBookmarkAs(document.getElementById('content')); } }; //********************BLOCK 1*************************** //Показать/Скрыть панель закладок function mbMouse(){ toolbar.collapsed = this.flgHS; flgHS = !this.flgHS; }; //*********************END****************************** //Открыть менеджер закладок function rbMouse(){ try {PlacesCommandHook.showPlacesOrganizer('AllBookmarks'); } catch(e) {toOpenWindowByType('bookmarks:manager', 'chrome://browser/content/bookmarks/bookmarksManager.xul'); } }; //********************BLOCK 2*************************** this.flgHS = true; const toolbar = document.getElementById("PersonalToolbar"); mbMouse(); //*********************END***************************** this.tooltipText = "Left => Добавить в закладки текущую страницу \nMiddle => Показать/Скрыть панель закладок \nRight => Открыть менеджер закладок"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } };
Вот так мне кажется наиболее верно:
//********************BLOCK 2*************************** this.flgHS = true; const toolbar = document.getElementById("PersonalToolbar"); //*********************END*****************************
да?
Отредактировано Indomito (31-07-2010 22:18:36)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
flgHS = !this.flgHS;
Ммм?
особенно в блоке №2
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
блин, а я то думаю что не то, те на разных компах и разных профилях она работает по разному... спс недоглядел.
Хотя если флаг не нужен (я this.flgHS ввёл для унифицирования) то Блок 1 можно написать проще:
//Показать/Скрыть панель закладок function mbMouse(){ toolbar.collapsed = !toolbar.collapsed; };
Отредактировано Indomito (31-07-2010 22:37:02)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Infocatcher так я опять по поводу скрытия, те как наиболее верно написать для ID=""PersonalToolbar" и ID="toolbar-menubar"
Варианты скрытия
const toolbar = document.getElementById("PersonalToolbar"); this.flgHS = false; toolbar.collapsed = this.flgHS;
или же
//Это явный бред, но и он не лишён смысла =) document.getElementById( "PersonalToolbar" ).style.display = "collapsed"; document.getElementById( "PersonalToolbar" ).style.display = "";
и так же для ID="toolbar-menubar"
а?
И как наиболее верно делать их видимыми?
Просто я запутался в методах... ппц
Отредактировано Indomito (01-08-2010 09:58:30)
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Кто может помоч мне? не могу сделать бытрую кнопку, вылезает ошибка
нужно вот этот порядок кода выполнить в действие
ION BUILD=6700624 RECORDER=FX TAB T=1 URL GOTO=http://ru3.darkorbit.bigpoint.com/indexInternal.es?action=internalDock&tpl=internalDockShips TAG POS=25 TYPE=DIV ATTR=TXT: TAG POS=2 TYPE=IMG ATTR=ALT:Купить<SP>сейчас&&SRC:do_img/global/text.esg?l=ru&s=8&f=eurostyle_clan&t=buy_now&uc=1&&TXT: TAG POS=1 TYPE=TD ATTR=CLASS:button_resizable_2&&TXT:
помогите разобраться как сделать)
ну или с какой прогой можно такую кнопу сделать?
Отредактировано ArtBigTema (01-08-2010 20:54:28)
Отсутствует
И как наиболее верно делать их видимыми?
Очевидно же – нужно скрыть точно так же, как это делается галочками из интерфейса.
=>
function onViewToolbarsPopupShowing(aEvent) { ... menuItem.addEventListener("command", onViewToolbarCommand, false);
=>
function onViewToolbarCommand(aEvent) { .... var hidingAttribute = toolbar.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; toolbar.setAttribute(hidingAttribute, aEvent.originalTarget.getAttribute("checked") != "true"); document.persist(toolbar.id, hidingAttribute);
Так что как-то так:
const tbId = "toolbar-menubar"; var tb = document.getElementById(tbId); var hideAttr = tb.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; tb.setAttribute(hideAttr, tb.getAttribute(hideAttr) != "true"); document.persist(tbId, hideAttr);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Anton
Знак & надо заменить последовательностью символов &
. . .
спасибо, все отлично сработало!
еще один вопросик - возможно ли реализовать такую задумку:
при выборе нужного пункта из меню кнопки (адрес - это ссылка на плейлист интернет-радио), он открывается/воспроизводится не в новой вкладке, а в где-то в фоне, не загромождая панель вкладок. При этом этот пункт помечается "галочкой". При повторном нажатии все отключается.
Плюс к этому, чтобы при подведении курсора к кнопке отображался играемый трек. Его название можно вычитывать со страницы текущей радиостанции.
Реально такое?
Отсутствует
Знак & надо заменить последовательностью символов &
Совсем забыл, можно и без &
Можно писать так
еще один вопросик - возможно ли реализовать такую задумку:
при выборе нужного пункта из меню кнопки (адрес - это ссылка на плейлист интернет-радио), он открывается/воспроизводится не в новой вкладке, а в где-то в фоне, не загромождая панель вкладок. При этом этот пункт помечается "галочкой". При повторном нажатии все отключается.
Плюс к этому, чтобы при подведении курсора к кнопке отображался играемый трек. Его название можно вычитывать со страницы текущей радиостанции.
Реально такое?
В принципе, возможно. Вот прототип:
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" oncommand="this. parentNode. cbController. handleMenuitem (event);"> <menuitem label="36" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=36"}/> <menuitem label="37" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=37"}/> <menuitem label="38" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=38"}/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. cbController = { btn: null, get browser () { var br = this. btn. getElementsByTagName ("browser") [0]; if (!br) { br = <browser xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" style="hidden:true;" type="content"/>; br = custombuttonsUtils. makeXML (br); this. btn. appendChild (br); } return br; }, handleMenuitem: function (event) { this. btn. removeChild (this. browser); this. btn. setAttribute ("tooltiptext", ""); var menuitem = event. target; if (!menuitem. getAttribute ("checked")) return; Array. forEach ( menuitem. parentNode. childNodes, function (item) { if (item == menuitem) return; item. removeAttribute ("checked"); } ); var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); if (!url) return; this. browser. loadURI (url); }, showTooltip: function () { try { var doc = this. browser. contentDocument; var ts = doc. getElementById ("titlesong"); this. btn. setAttribute ("tooltiptext", ts. textContent); } catch (e) {} } }; this. cbController. btn = this; this. onmouseover = function () { this. cbController. showTooltip (); };
Отредактировано Anton (02-08-2010 19:16:36)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
ps. Забыл добавить атрибут браузеру
br = <browser xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" style="hidden:true;" type="content"/>;
А вот звука я почему-то не слышу...
А у меня работает.
Кнопка создает браузер и загружает в него страницу как в обычной вкладке. Поэтому надо иметь в виду что
1. до начала воспроизведения может пройти какое-то время (пока страница не загрузится)
2. какое-нибудь из расширений (NoScript, может быть) может блокировать содержимое браузера кнопки
3. а может проблема с flashplayer'ом, как у меня - периодически отказывается воспроизводить звук
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton а куда этот атрибут писать... в секцию
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" oncommand="this. parentNode. cbController. handleMenuitem (event);">
да?
"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах
Отсутствует
Anton а куда этот атрибут писать
Я исходное сообщение (http://forum.mozilla-russia.org/viewtop … 62#p436062) поправил, можно там посмотреть, куда писать.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
А у меня работает.
Кнопка создает браузер и загружает в него страницу как в обычной вкладке. Поэтому надо иметь в виду что
1. до начала воспроизведения может пройти какое-то время (пока страница не загрузится)
2. какое-нибудь из расширений (NoScript, может быть) может блокировать содержимое браузера кнопки
3. а может проблема с flashplayer'ом, как у меня - периодически отказывается воспроизводить звук
Везет тебе, а у меня почему-то облом
1. ждал минут 5 - ничего...
2. NoScript установлен, но выключен. Также выключал Adblock - все также...
Вот список включенных расширений:
Используемые расширения: [49]
- Adblock Plus 1.2.1: http://www.google.com/search?q=Firefox%20Adblock%20Plus
- Adblock Plus: Element Hiding Helper 1.0.6: http://adblockplus.org/
- Add Bookmark Here ² 3.6.20100625: https://addons.mozilla.org/firefox/addon/3880
- Add to Search Bar 2.0: http://firefox.maltekraus.de/extensions/add-to-search-bar
- Boss Key 0.2.1: http://hall.sociz.com/index.php?showtopic=17805
- BugMeNot 2.2: http://www.google.com/search?q=Firefox%20BugMeNot
- Charset Switcher 3.5.20100520: https://addons.mozilla.org/firefox/addon/8493/
- Context Search 0.4.5: http://www.cusser.net
- CS Lite 1.4: http://addons.mozilla.org
- Custom Buttons 0.0.4.9: http://xsms.nm.ru/custombuttons/en/
- CuteButtons - Crystal SVG 0.2.5: http://choggi.dyndns.org/misc/CuteButtonsCrystalSVG/
- CuteMenus - Crystal SVG 1.9.3: http://www.cutemenuproject.com/
- Download Statusbar 0.9.7: http://downloadstatusbar.mozdev.org/
- Easy DragToGo 1.1.2.4: http://addons.sociz.com/firefox/700/
- Element Properties 6: http://www.google.com/search?q=Firefox%20Element%20Properties
- Fast Translation 1.07: http://www.google.com/search?q=Firefox%20Fast%20Translation
- File Title 1.3: http://www.jasnapaka.com/mozilla/filetitle/
- Find Toolbar Tweaks 2.2.0: http://homepage3.nifty.com/georgei/extension/ftt_en.html
- Fission 1.0.9: http://mozilla.zeniko.ch/fission.html
- FlashGot 1.2.1.28: http://flashgot.net
- functions for keyconfig 1.4.0: http://www.pqrs.org/~tekezo/firefox/extensions/functions_for_keyconfig/
- Greasemonkey 0.8.20100408.6: http://www.greasespot.net/
- Hide Find Bar 1.3.1: http://hidefindbar.jaredmcateer.com
- Hide Menubar 3.6.20100626: http://forum.moztw.org/viewtopic.php?t=15303
- IE Tab Plus 1.92.20100607: http://coralietab.mozdev.org
- keyconfig 20080929: http://mozilla.dorando.at/
- Locationbar² 1.0.5: http://en.design-noir.de/mozilla/locationbar2/
- MR Tech Toolkit 6.0.4: http://www.mrtech.com/extensions/
- Organize Status Bar 0.6.4: http://yellow5.us/firefox/osb/
- Pearl Crescent Page Saver Basic 2.6: http://pearlcrescent.com/products/pagesaver/
- Ru-Board Navigation 1.6.0: http://forum.mozilla-russia.org/viewtopic.php?id=4207
- Save Images 0.6.8: http://www.google.com/search?q=Firefox%20Save%20Images
- Saved Password Editor 1.5.3: http://www.google.com/search?q=Firefox%20Saved%20Password%20Editor
- Searchbar Autosizer 1.4.5: http://searchbarautosizer.mozdev.org
- SkipScreen 0.5.5s: http://skipscreen.com/
- SmileySidebar 1.3.3: http://www.google.com/search?q=Firefox%20SmileySidebar
- SortPlaces 1.6.8: http://www.andyhalford.com/sortplaces/index.html
- StatusbarEx 0.2.19: http://doudehou.googlepages.com/statusbarex
- Stay-Open Menu 1.5.4: http://www.shadetreeapiary.com/extension/
- Stylish 1.0.9: http://userstyles.org/
- Tab Mix Plus 0.3.8.4: http://tmp.garyr.net
- Toolbar Buttons 0.6.0.8: http://codefisher.org/toolbar_button/
- TotalToolbar 1.7: http://totaltoolbar.mozdev.org
- UnMHT 5.6.0: http://www.unmht.org/unmht/en_index.html
- Update Bookmark 0.0.5.1: http://www.chuonthis.com/extensions/
- URL Tooltip 1.2.1: http://www.google.com/search?q=Firefox%20URL%20Tooltip
- WebMail Notifier 2.5.2: http://webmailnotifier.mozdev.org/
- Xmarks 3.7.9: http://www.xmarks.com/
- Zen.Weather 0.3.1: http://www.google.com/search?q=Firefox%20Zen.Weather
Установленные темы: [2]
- Camifox 3.6.5: http://tylerc.com/firefox/
- Стандартная: http://www.mozilla.org/
Установленные плагины: (12)
- Google Earth Plugin
- Google Update
- IE Tab Plug-in
- Java Deployment Toolkit 6.0.210.7
- Java(TM) Platform SE 6 U21
- Microsoft® DRM
- Mozilla Default Plug-in
- RealPlayer Version Plugin
- RealPlayer(tm) G2 LiveConnect-Enabled Plug-In (32-bit)
- Shockwave Flash (Plugin Version: 10.1.53.64)
- Windows Media Player Plug-in Dynamic Link Library
- Windows Presentation Foundation
3. А как это можно проверить и, если есть проблемы, устранить их? Если просто зайти по ссылке всё играет!
Кнопка создает браузер и загружает в него страницу как в обычной вкладке.
виртуальный браузер в памяти?
Добавь пожалуйста возможность по нажатии ПКМ на пункте меню обычное открытие ссылки во вкладке.
Думал, может проблема в работе через прокси - подключился по впн, та же картина - тишина
Отредактировано Inko7 (03-08-2010 10:40:20)
Отсутствует
Везет тебе, а у меня почему-то облом
У меня ненадежно работает. Первый выбор воспроизводит всегда, остальные - иногда.
Короче, предлагаю считать, что реализовать невозможно, прошу прощения, что зазря обнадежил.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
спасибо за попытку!
Последняя просьба: можно переделать кнопку (твой прототип) так, чтобы по нажатии ЛКМ в меню станция все таки открывалась в новой вкладке, этот пункт отмечался "галочкой", при наведении курсора на кнопку показывался текущий трек (эта штука просто супер!!!), а при повторном нажатии эта вкладка просто закрывалась и "галка" снималась?
Помоги пожалуйста!
Отсутствует
Inko7
Вот что-то вроде:
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" oncommand="this. parentNode. cbController. handleMenuitem (event);"> <menuitem label="36" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=36&bit=1&serv="}/> <menuitem label="37" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=37&bit=1&serv="}/> <menuitem label="38" type="checkbox" cb:url={"http://www.101.ru/?an=port_playmp3&channel=38&bit=1&serv="}/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. cbController = { btn: null, tab: null, evtHandle: true, handleMenuitem: function (event) { var oldTab = this. tab; if (oldTab) { var br = gBrowser. getBrowserForTab (oldTab); br. loadURI ("about:blank"); } this. btn. setAttribute ("tooltiptext", ""); var menuitem = event. target; var checked = menuitem. getAttribute ("checked"); this. clearMenu (); if (checked) { var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); this. tab = gBrowser. addTab (url); menuitem. setAttribute ("checked", "true"); } if (oldTab) { this. evtHandle = false; if (oldTab) gBrowser. removeTab (oldTab); this. evtHandle = true; } }, showTooltip: function () { try { var doc = gBrowser. getBrowserForTab (this. tab). contentDocument; var ts = doc. getElementById ("titlesong"); this. btn. setAttribute ("tooltiptext", ts. textContent); } catch (e) {} }, clearMenu: function () { var mp = this. btn. getElementsByTagName ("menupopup") [0]; for (var i = 0; i < mp. childNodes. length; i++) mp. childNodes [i]. removeAttribute ("checked"); }, handleEvent: function (event) { if (this. evtHandle && (event. type == "TabClose") && (this. tab == event. originalTarget)) { this. clearMenu (); this. tab = null; } } }; this. cbController. btn = this; this. onmouseover = function () { this. cbController. showTooltip (); }; this. onDestroy = function () { gBrowser. removeEventListener ("TabClose", this. cbController, true); }; gBrowser. addEventListener ("TabClose", this. cbController, false);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton
очень даже хорошо! Обнаружил небольшие ошибки:
1. Вкладка открывается не активной и звука не будет пока её не выберешь. Можно передавать ей фокус? Особенность FF (во всяком случае у меня так), если на странице есть флеш, то он запускается только тогда, когда вкладка становится активной.
2. Станции прекрасно переключаются между собой и все отображается во всплывающей подсказке, но до тех пор, пока какую-нибудь из них не выключить (выбрать повторно). При этом вкладка нормально закрывается, но после этого при выборе станции уже ничего не открывается, хотя "галка" появляется. Можно теперь хоть возле каждого пункта "галки" расставлять/убирать...
Перезагрузка FF и опять все в норме.
Сможешь исправить?
Отсутствует
Можно передавать ей фокус?
Надо заменить
на
2. Станции прекрасно переключаются между собой и все отображается во всплывающей подсказке, но до тех пор, пока какую-нибудь из них не выключить (выбрать повторно). При этом вкладка нормально закрывается, но после этого при выборе станции уже ничего не открывается, хотя "галка" появляется. Можно теперь хоть возле каждого пункта "галки" расставлять/убирать...
У меня похожая ситуация. Я так понимаю это особенность флэш плагина или сервера.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
У меня похожая ситуация. Я так понимаю это особенность флэш плагина или сервера.
выходит, не получится ничего с этим сделать? Просто не пользовать повторное нажатие, а закрывать вкладку вручную?
Можно тогда отключить в коде случайный повторный выбор пункта, чтоб глюк не проявлялся?
А так, все просто суперово!
Отсутствует
выходит, не получится ничего с этим сделать?
Я не знаю, что с этим делать.
Можно тогда отключить в коде случайный повторный выбор пункта, чтоб глюк не проявлялся?
А смысл ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Добавление сочетаний клавиш на примере кнопки для закрепления/открепления вкладок: pinTabs.js
Придумывать хоткеи было лень.
Работать будет только в новых окнах или после перезапуска. Повторные вызовы инициализации никак не проверяются.
Отредактировано Infocatcher (08-08-2010 01:36:25)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует