Bookmarks Tooltips 0.0.3.7 [4,0 кб]
Код не менял – только добавил пару плюшек
Локализована / переведена подпись расширения.
Добавлены настройки.
Показывать URL закладки в строке состояния:
if( nsPreferences.getBoolPref("bookmarkstooltips.showUrlInStatusbar", true) ) window.addEventListener('load', bookmarkstooltips.init, false);
Удалять атрибут tooltiptext у закладок на панели закладок:
if(event.type == "mouseover") { if( nsPreferences.getBoolPref("bookmarkstooltips.removeTooltiptext", false) ) // fix conflict with Bookmarks Menu Button event.target.removeAttribute("tooltiptext"); // ...
А править код, наверное, не буду до тех пор, пока не обнаружатся какие-нибудь баги...
P. S. К слову, расширение Bookmarks Menu Button, из-за которого, собственно, и был весь сыр-бор с удалением tooltiptext'а (поставил, чтобы потестить, а нарвался на жестокие глюки), ну очень криво работает со строкой состояния...
P. P. S. Пожалуй, надо будет выложить в обсуждение расширений...
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Так, одну багу уже нашел...
У пунктов меню «Подписаться на ленты новостей» tooltiptext'ом выводится URL. Соответственно при одновременном выводе и tooltip'а, и tooltiptext'а наблюдаются неудобоваримые с точки зрения чтения текста подсказок глюки.
Может, добавить-таки обработчик popupshowing'а на на btTooltip и при наличии tooltiptext'а пихать его значение заместо URL'а (вариант: URL => присваиваем это значение второй строке, нет – первой)?..
Заодно: как определить наличие tooltiptext'а?
Или просто .getAttribute('tooltiptext') вернет "" при отсутствии атрибута?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
можно добавить в init что-нибудь вроде
document.getElementById("subscribeToPageSubmenuMenupopup").addEventListener ( "popupshown", function (event) { var mi = event. target. getElementsByTagName ("menuitem"); var tt, cmi; for (var i = 0; i < mi. length; i++) { cmi = mi [i]; if (cmi. hasAttribute ("tooltiptext")) { tt = cmi. getAttribute ("tooltiptext"); cmi. removeAttribute ("tooltiptext"); cmi. setAttribute ("statustext", tt); } } }, true );
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
можно добавить в init что-нибудь вроде
И что бы я без Вас делал?..
Ctrl+C – Ctrl+V...
Bookmarks Tooltips 0.0.3.8 [4,2 кб]
А заодно и текст в строке состояния теперь меняется
P. S. Только сейчас заметил, что если URL и label закладки совпадают, то показывается только одна строка
P. P. S. Какие-нибудь предложения по оптимизации будут? В частности – касательно наглых расширений, панели закладок и tooltiptext'а.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Какие-нибудь предложения по оптимизации будут?
У меня нет никаких идей и соображений, хотя, я уверен (как и всегда, кроме простых случаев), что можно сделать проще.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Так, одно изменение точно нужно.
В связи с этим:
window.addEventListener('load', bookmarkstooltips.addTooltips, false); if( nsPreferences.getBoolPref("bookmarkstooltips.showUrlInStatusbar", true) ) // sic! window.addEventListener('load', bookmarkstooltips.init, false);
Т. е. init выполняется не всегда – надо перенести document.getElementById("subscribeToPageSubmenuMenupopup").addEventListener... в addTooltips.
А хочется сделать что-то вроде
Создаем настройку bookmarkstooltips.debug
// в addTooltips: var bmttDebug = nsPreferences.getBoolPref("bookmarkstooltips.debug", false); if(!bmttDebug) document.getElementById("subscribeToPageSubmenuMenupopup").addEventListener("popupshown", ... // устраняем глюки с лентами новостей else { // удаляем все tooltiptext'ы document.getElementById("btTooltip").addEventListener ("popupshown", ... // если у элемента есть tooltiptext, копируем его значение в переменную tt и .removeAttribute("tooltiptext"); // if( tt.match(/^[a-z]+:/i) ) ...setAttribute("statustext", tt); }
Так вот, пройдет ли вообще такой фокус (что произойдет раньше – покажется tooltiptext или он же удалится)? И как обратиться к самому элементу с tooltip'ом? К тому же, сейчас «левый» tooltiptext удаляется только при bookmarkstooltips.showUrlInStatusbar == true, что не есть хорошо (можно, конечно, всегда статус менять...).
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Почти ничего не менял...
Убрал настройку показа URL'ов в строке состояния (зато теперь на все настройки – 1 шт. – адекватная реакция).
Создал тему для обсуждения. Думается, баги так будут ловиться куда эффективнее.
Bookmarks Tooltips 0.0.3.9 [4,0 кб]
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
rubel
Поправка. Легкая ерунда, работающая со строкой состояния.
К тому же, расширение задумывалось для исправления того, что должно быть, но почему-то отсутствует.
Если только разобраться с подсказками для закладок в боковой панели, но это не столь тривиально, как хотелось бы.
Хм, изменил type bookmarks-view с "single-column" на "double-column". Наблюдаю интересный эффект – можно выбрать имя, адрес и кучу всего по выбору для отображения в боковой панели. [Позже] Так, type можно просто удалить – результат будет тот же.
Одно странно – почему-то не могу найти соответствующую настройку в about:config.
Отредактировано Infocatcher (19-07-2007 22:54:50)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Попробовал, расширение лично мне тоже не понравилось (в 3.0 вообще работает лишь из меню Закладки на панели инструментов) да и если закладок достаточно много то смысл расширения вообще теряется, не виден адрес закладки в статусной строке:
Хотя желание усовершенствовать Firefox, да и сама идея вещи хорошие.
Через сомнения приходим к истине. Цицерон
Отсутствует
в 3.0 вообще работает лишь из меню Закладки на панели инструментов
Стоп. Расширение и работает только с меню и с панелью закладок. В общем, что из обещанного здесь не работает? А дистрибутива 3.0 у меня просто нету (если только следующую версию достану)...
А с большими списками можно сделать что-то вроде вот этого:
/* Полоса прокрутки для слишком длинных списков закладок */ menupopup[contextmenu="bookmarks-context-menu"] autorepeatbutton { display: none !important; } menupopup[contextmenu="bookmarks-context-menu"] scrollbox { overflow-y: auto !important; width: 250px !important; /* а иначе слишком узко будет... хоть решение и не идеально... */ } menupopup[contextmenu="bookmarks-context-menu"] { max-height: 250px !important; /* высота – какая требуется */ }
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Стоп. Расширение и работает только с меню и с панелью закладок.
Уточню, чтобы было понятно - работает только с меню Закладки (не работает с панелью закладок - в 3.0) и полоса прокрутки есть, но это не помогает.
А про длинные списки - это уже нужно в расширение добавлять иначе смысла в таком расширении нет, если еще что-то нужно помимо установки и настройки расширения прописывать. Подумай, может стоит добавить.
Через сомнения приходим к истине. Цицерон
Отсутствует
Мне расширение понравилось. Спасибо за труд!
Пожалуйста.
не работает с панелью закладок - в 3.0
Ага, теперь понял. Будет у меня 3.0 – посмотрю. Исправить, я думаю, нетрудно – надо просто посмотреть, какие там идентификаторы стали.
Подумай, может стоит добавить.
Я не знаю, как динамически менять стили (может, конечно, Антон в курсе). Стиль-то я подключу, но навязывать пользователям удобные лично мне настройки (max-height, например, да и сам скроллбар) нехорошо. И, самое главное, не вижу особого смысла делать лишний код для того, что можно сделать без всяких расширений. (разве что можно Stylish разобрать и посмотреть.) Мне, например, ничего дополнительно прописывать не надо – пользуюсь в основном только панелью закладок, а там у меня все по отдельным папкам, плюс стиль для обрезания длинных названий.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
А если url закладки в статусбаре перекрывается меню "Закладки", то можно показать этот url в заголовке окна.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А если url закладки в статусбаре перекрывается меню "Закладки", то можно показать этот url в заголовке окна.
Да хоть в панели адреса – не в этом же дело. Как определить факт перекрытия статусбара?
[позже] Или в том плане, что и там, и там показывать? (Тогда ведь придется и с меню работать – в статусе-то сейчас и так показывается – из меню то есть) И, раз уж ты сюда заглянул, то посмотри на сообщение №34 (после разделителя).
Маленькое дополнение.
А с большими списками можно сделать что-то вроде вот этого:
Если еще добавить
#menu_BookmarksPopup { max-height: 350px !important; /* Или любая другая высота */ }
, то можно задать собственную максимальную высоту основного меню закладок (там, где «Добавить страницу в закладки» и т.д.).
Вот только на скроллинг как-то неадекватно порой реагирует – прокручиваешь содержимое подпапки, а смещается и родительская папка, но это уже в багзиллу, я думаю.
Отредактировано Infocatcher (20-07-2007 23:10:26)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Как определить факт перекрытия статусбара?
Показывать, по-моему надо в одном месте, чтобы не путаться.
...посмотри на сообщение №34 (после разделителя).
Посмотрел. О чём речь, о настройках tree из менеджера закладок ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
О чём речь, о настройках tree из менеджера закладок ?
Речь шла о боковой панели. Если открыть сайдбар и у элемента bookmarks-view удалить атрибут type, то получатся столбцы как в менеджере закладок (если сначала удалить, а потом открыть боковую панель, то type заново пропишется). А вопрос – есть ли встроенная настройка для вида боковой панели.
P. S. Ага, понял. Родительская папка начинает прокручиваться при overflow – когда дочерней пролистываться больше некуда.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
есть ли встроенная настройка для вида боковой панели.
Вид боковой панели настраивается через column picker и хранится, скорее всего, в localstore.rdf.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
В заголовке, так в заголовке...
Bookmarks Tooltips 0.0.4a1 [4,2 кб]
bookmarkstooltips.showUriIn
1 -> в строке состояния
2 -> в заголовке окна
Недостатки
1. Редактируется не весь заголовок, а только надпись Mozilla Firefox (или другая – в зависимости от баловства расширений).
2. Для меню «Закладки» URL в строке состояния показывается и так – без всяких дополнений – поэтому в этом случае, независимо от настроек, статусбар будет меняться.
Пришлось добавить
var bmMenu = document.getElementById("menu_BookmarksPopup");
bmMenu.addEventListener("mouseover", bookmarkstooltips.setURItoStatusbarLabel, true);
bmMenu.addEventListener("mouseout", bookmarkstooltips.setURItoStatusbarLabel, true);
Показ в панели адреса я не осилил...
Fission делает
И в дальнейшее я вникать не стал.
Вопросы
1. Как изменить первую часть заголовка окна (то, что берется из <title> в HTML)?
2. (Необязательно, но познавательно ) как изменить текст в urlbar?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
1. Как изменить первую часть заголовка окна (то, что берется из <title> в HTML)?
window.title
Когда надо показать url, делаем window. title = url, когда надо восстановить что было, делаем getBrowser().updateTitlebar()
как изменить текст в urlbar
document. getElementById ("urlbar"). value ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Infocatcher
Может в 2.0 и работает, но на версию 3.0a ставить это расширения нет никакого смысла. Как говориться не сложилось.
Стиль-то я подключу, но навязывать пользователям удобные лично мне настройки (max-height, например, да и сам скроллбар) нехорошо. И, самое главное, не вижу особого смысла делать лишний код для того, что можно сделать без всяких расширений.
Не навязывать, а предлагать настройку для тех кому такая настройка будет необходима (без лишних танцев с бубном). Расширения делаются в основном для того, чтобы не добавлять всё ручками (что и делают те, кто может), а чтобы после установки расширения получить простой доступ к дополнительной функциональности браузера, которая скрыта или недоступна обычными средствами.
Через сомнения приходим к истине. Цицерон
Отсутствует
Sergeys
Насчет удобств – согласен. Знал бы, как сделать, – тогда не вопрос.
А касаемо расширений, так подавляющее их большинство добавляет как раз то, что ручками не сделаешь (или делает это другим способом, например, Stylish – без перезагрузки, хотя стиль на закладки на лету что-то не вешается ). Если только не подредактировать исходники браузера (что не есть хорошо, да и вообще – жуткий хак) или не написать самому расширение. Единственное исключение, которое я знаю – Fasterfox (да и то – таймер добавляет).
А в данном конкретном случае, ИМХО, проще привести CSS-код и расписать, что зачем.
И интерфейс для настроек надо будет прикручивать... А это – в последнюю очередь (кому нужны удобные настройки, если расширение не очень-то работает?).
...когда надо восстановить что было, делаем getBrowser().updateTitlebar()
Дабы не плодить дополнительный код (а также из лени) оставил старый способ восстановления (во всех случаях метод один и тот же – для заголовка, строки состояния, urlbar'а).
Bookmarks Tooltips 0.0.4a2 [4,3 кб] (JavaScript)
bookmarkstooltips.showUriIn
1 = statusbar
2 = title
3 = titlemodifier
4 = urlbar
Да, еще раз уточню вопрос про боковую панель. Надо сделать так, чтобы всегда показывалось несколько столбцов.
Отредактировано Infocatcher (21-07-2007 03:21:01)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Надо сделать так, чтобы всегда показывалось несколько столбцов.
Ты уже выяснил, как это можно сделать - надо удалить атрибут type. Как это сделать ? - с помощью javascript или оверлеем на xul боковушки закладок.
Только зачем это нужно ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Только зачем это нужно ?
Если показывать два столбца – название и адрес, то столбец со ссылкой можно сделать очень узким, и при наведении курсора (и если текст урезан) будет показываться tooltiptext с URL. Довольно удобно, ИМХО.
Так, по-видимому, со встроенными средствами настройки глухо.
Тогда вопрос про вариант с JavaScript (с оверлеем не будет возможности выбора – без добавления JavaScript).
Как выявить событие открытия сайдбара с закладками?
var bookmarkstooltips = { // ... addTooltips: function() { if( nsPreferences.getBoolPref("bookmarkstooltips.sidebarMultiColumn"), true ) { document.getElementById("bookmarks-view").addEventListener ( "load", function() { document.getElementById("bookmarks-view").removeAttribute("type"); }, true ); } // ... window.addEventListener("load", bookmarkstooltips.addTooltips, false);
Возвращает
Ошибка: document.getElementById("bookmarks-view") has no properties Источник: chrome://bookmarkstooltips/content/bookmarkstooltips.js Строка: 20
P. S. Если бы мне нравилось, когда ничего не настраивается и ручками не поработаешь – сидел бы на IE
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Как выявить событие открытия сайдбара с закладками?
Сделать оверлей на тот *.xul, который показывает в боковой панели закладки.
Я правильно понимаю - расширенное отображение закладок в сайдбаре задумано только для того, чтобы получить url закладки ?
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует