>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB] Показать адрес существующей закладки при наведении на звездочку http://forum.mozilla-russia.org/viewtopic.php?id=68827 |
Inko7 > 24-11-2015 20:52:50 |
Показать адрес существующей закладки при наведении на звездочку (Firefox Australis) Автор: Inko7, bunda1, Dumby Выделить код Код:/*Initialization Code*/ // ПОКАЗАТЬ АДРЕС СУЩЕСТВУЮЩЕЙ ЗАКЛАДКИ ПРИ НАВЕДЕНИИ НА ЗВЕЗДОЧКУ var starbutt = document.getAnonymousElementByAttribute(document.getElementById('bookmarks-menu-button'), "anonid", "button"); starbutt.onmouseover = function() { var {bookmarks, placesRootId, tagsFolderId} = PlacesUtils, result = []; for(var id of BookmarkingUI._itemIds) { var arr = []; while((id = bookmarks.getFolderIdForItem(id)) != placesRootId) { if (id == tagsFolderId) { arr = []; break; } arr.unshift(bookmarks.getItemTitle(id) || "(без заголовка)"); } arr.length && result.push(arr.join("\\")); } if (result.join()) starbutt.tooltipText = "Адрес закладки:" + "\n" + result.join("\n"); }; |
jars > 25-11-2015 06:54:10 |
Для старших версий, а также бравзера PaleMoon надобно заменить первую строку с переменной на: |
Inko7 > 05-03-2016 20:45:45 |
Вроде бы с 44-й версии появился небольшой глюк: |
bunda1 > 06-03-2016 10:44:30 |
Inko7 пишет
Странно, но я такой глюк на FF45 не наблюдаю. И без твоего кода путь к закладке в подсказке не вижу месте с предложением редактировать. |
Inko7 > 06-03-2016 12:15:04 |
bunda1 |
bunda1 > 06-03-2016 12:33:52 |
Inko7 пишет
Я думаю что не нужно их подружить, потому что твой код дублирует возможность которую добавляет Add Bookmark. Но можешь просто заменить: на Выделить код Код:starbutt.tooltipText = "Редактировать эту закладку (Ctrl+D)" + "\n➥" + result.join("\n➠"); |
Inko7 > 06-03-2016 13:57:42 |
bunda1 |
difabor > 06-03-2016 16:21:13 |
Inko7 пишет
В своё время я попросил автора аддона добавить индикацию пути к сохранённой закладке по наведению курсора. Ему тогда это понравилось и он добавил. Теперь это конфликтует с Вашей аналогичной функцией. Имхо, конечно. |
Inko7 > 06-03-2016 16:59:01 |
difabor 06-03-2016 17:06:27 |
bunda1 > 06-03-2016 17:35:57 |
Inko7 пишет
Ну вот, а я уже переделал код чтоб была как раньше: Выделить код Код:BookmarkingUI.star.onmouseenter =e=> { var {bookmarks, placesRootId, tagsFolderId} = PlacesUtils, result = []; for( var id of BookmarkingUI._itemIds ) { var arr = []; while((id = bookmarks.getFolderIdForItem(id)) != placesRootId) { if (id == tagsFolderId) { arr = []; break; } arr.unshift(bookmarks.getItemTitle(id) || "(без заголовка)"); } arr.length && result.push(arr.join("\\")); } if (result.join()) e.target.tooltipText = "Адрес закладки:\n" + result.join("\n"); }; |
voqabuhe > 06-03-2016 18:17:33 |
bunda1 |
Inko7 > 06-03-2016 18:23:09 |
bunda1 |
bunda1 > 06-03-2016 22:58:51 |
voqabuhe пишет
Выделить код Код:// Показывать в подсказке вкладки адрес закладки в папках закладок, от 06.03.2016. ................. (()=> { var src = "gBrowser.createTooltip = " + gBrowser.createTooltip.toString(), res = src.replace('label);', 'label + getBookPath(tab));'); eval(res); addDestructor(()=> eval(src) ); function getBookPath(tab) { var {bookmarks, placesRootId, tagsFolderId} = PlacesUtils, result = [], uri = tab.linkedBrowser.currentURI; for( var id of PlacesUtils.getBookmarksForURI(uri) ) { var arr = []; while( id = PlacesUtils.bookmarks.getFolderIdForItem(id) ) { if (id == PlacesUtils.placesRootId) break; arr.unshift(bookmarks.getItemTitle(id) || "(без заголовка)"); } result.push(arr.join("\\")); } return str = result.join() ? "\n\nАдрес закладки:\n" + result.join("\n") : ""; } })(); |
voqabuhe > 06-03-2016 23:23:46 |
bunda1 |
bunda1 > 17-03-2016 20:18:28 |
Inko7 перед: Выделить код Код:if (result.join()) starbutt.tooltipText = "Адрес закладки:" + "\n" + result.join("\n"); тогда адреса закладок будет сортироваться по длине. |