pag77
добрый день
есть ли возможность в конт. меню таба, в том числе не загруженного, добавить подменю с историей этой вкладки
(ну, которая появляется при правом щелчке по стрелкам назад/вперед)?
Отсутствует
pag77добрый деньесть ли возможность в конт. меню таба, в том числе не загруженного, добавить подменю с историей этой вкладки(ну, которая появляется при правом щелчке по стрелкам назад/вперед)?
создайте в контестном меню вкладок новую меню-папку
в свойствах этой папки, в Команда -> onPopupShowing пропишите это:
var oldTab = gBrowser.selectedTab; gBrowser.selectedTab=TabContextMenu.contextTab; FillHistoryMenu(event.target); gBrowser.selectedTab=oldTab;
Отсутствует
difabor пишетА какие ИД у Основного контекстного меню, контекстного меню вкладок, закладок и т.д?
в MenuWizard выберите, например, "Основное контекстное меню", войдите в его свойства и смотрите поле ID
в данном случае ID равен contentAreaContextMenu
Большое спасибо!
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
user44 пишетк истории не загруженного таба БЕЗ его загрузки
это как? поясните - я не пойму вашу мысль
ИМХО - он имеет в виду историю неактивной вкладки
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Это всмысле когда браузер перезапущен и ранее открытые вкладки не активны?
Тогда да, в данном случае без активации вкладки нельзя.
Но можно заменить выше приведенный код на это:
FillHistoryMenu_new(event.target); function FillHistoryMenu_new(aParent) { // Lazily add the hover listeners on first showing and never remove them if (!aParent.hasStatusListener) { // Show history item's uri in the status bar when hovering, and clear on exit aParent.addEventListener("DOMMenuItemActive", function(aEvent) { // Only the current page should have the checked attribute, so skip it if (!aEvent.target.hasAttribute("checked")) XULBrowserWindow.setOverLink(aEvent.target.getAttribute("uri")); }, false); aParent.addEventListener("DOMMenuItemInactive", function() { XULBrowserWindow.setOverLink(""); }, false); aParent.hasStatusListener = true; } // Remove old entries if any var children = aParent.childNodes; for (var i = children.length - 1; i >= 0; --i) { if (children[i].hasAttribute("index")) aParent.removeChild(children[i]); } var webNav = gBrowser.getBrowserForTab(TabContextMenu.contextTab).webNavigation; var sessionHistory = webNav.sessionHistory; var count = sessionHistory.count; if (count <= 1) // don't display the popup for a single item return false; const MAX_HISTORY_MENU_ITEMS = 15; var index = sessionHistory.index; var half_length = Math.floor(MAX_HISTORY_MENU_ITEMS / 2); var start = Math.max(index - half_length, 0); var end = Math.min(start == 0 ? MAX_HISTORY_MENU_ITEMS : index + half_length + 1, count); if (end == count) start = Math.max(count - MAX_HISTORY_MENU_ITEMS, 0); var tooltipBack = gNavigatorBundle.getString("tabHistory.goBack"); var tooltipCurrent = gNavigatorBundle.getString("tabHistory.current"); var tooltipForward = gNavigatorBundle.getString("tabHistory.goForward"); for (var j = end - 1; j >= start; j--) { var item = document.createElement("menuitem"); var entry = sessionHistory.getEntryAtIndex(j, false); var uri = entry.URI.spec; var entryURI = BrowserUtils.makeURIFromCPOW(entry.URI); item.setAttribute("uri", uri); item.setAttribute("label", entry.title || uri); item.setAttribute("index", j); if (j != index) { PlacesUtils.favicons.getFaviconURLForPage(entryURI, function (aURI) { if (aURI) { var iconURL = PlacesUtils.favicons.getFaviconLinkForIcon(aURI).spec; iconURL = PlacesUtils.getImageURLForResolution(window, iconURL); item.style.listStyleImage = "url(" + iconURL + ")"; } }); } if (j < index) { item.className = "unified-nav-back menuitem-iconic menuitem-with-favicon"; item.setAttribute("tooltiptext", tooltipBack); } else if (j == index) { item.setAttribute("type", "radio"); item.setAttribute("checked", "true"); item.className = "unified-nav-current"; item.setAttribute("tooltiptext", tooltipCurrent); } else { item.className = "unified-nav-forward menuitem-iconic menuitem-with-favicon"; item.setAttribute("tooltiptext", tooltipForward); } aParent.appendChild(item); } return true; }
функция взята отсюда (правда от FF42) и слегка изменена:
chrome://browser/content/browser.js
это:
заменено на это:
Отсутствует
можно заменить выше приведенный код на это ....
да, теперь историю видно даже у незагруженных табов
видно-то видно, но нажатия мышкой по менюитему не отрабатываются
я вообще надеялся, когда вопрос задавал, что можно будет делать так:
ПКМ по неактивному табу > подменюшка истории > СКМ по элементу списка для открытия в новой вкладке
(т.е. как с конт. меню стрелок назад/вперед)
Отсутствует
ПКМ по неактивному табу > подменюшка истории > СКМ по элементу списка для открытия в новой вкладке
добавьте после:
это:
item.setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(this.getAttribute('uri'));");
Добавлено 05-02-2016 16:55:54
правда это не по СКM, а по клику по меню любой кнопкой мыши
Отредактировано pag77 (05-02-2016 16:55:54)
Отсутствует
pag77
свершилось чудо! друг спас жизнь друга! (c) Карлсон
спасибо!
ps
вообще штука полезная получилась
может, в будущих релизах вообще её как опцию аддона пристроить?
Отредактировано user44 (05-02-2016 18:10:56)
Отсутствует
может, в будущих релизах вообще её как опцию аддона пристроить?
не
MenuWizard - это конструктор, а что и как конструировать - это уже пользователям решать.
может быть мой аддон наберет популярность как CustomButtons и кто-то сделает отдельную ветку: Сustom Buttons > Кнопки для Custom Buttons
Menu Wizard > Меню для Menu Wizard
Отсутствует
ну, возможно, камрады будут тут выкладывать интересные полезняшки
примерно в таком виде
подменю с историей вкладки в её контестном меню
создайте в контестном меню вкладок новую меню-папку
в свойствах этой папки, в Команда -> onPopupShowing пропишите это:
FillHistoryMenu_new(event.target); function FillHistoryMenu_new(aParent) { // Lazily add the hover listeners on first showing and never remove them if (!aParent.hasStatusListener) { // Show history item's uri in the status bar when hovering, and clear on exit aParent.addEventListener("DOMMenuItemActive", function(aEvent) { // Only the current page should have the checked attribute, so skip it if (!aEvent.target.hasAttribute("checked")) XULBrowserWindow.setOverLink(aEvent.target.getAttribute("uri")); }, false); aParent.addEventListener("DOMMenuItemInactive", function() { XULBrowserWindow.setOverLink(""); }, false); aParent.hasStatusListener = true; } // Remove old entries if any var children = aParent.childNodes; for (var i = children.length - 1; i >= 0; --i) { if (children[i].hasAttribute("index")) aParent.removeChild(children[i]); } var webNav = gBrowser.getBrowserForTab(TabContextMenu.contextTab).webNavigation; var sessionHistory = webNav.sessionHistory; var count = sessionHistory.count; if (count <= 1) // don't display the popup for a single item return false; const MAX_HISTORY_MENU_ITEMS = 15; var index = sessionHistory.index; var half_length = Math.floor(MAX_HISTORY_MENU_ITEMS / 2); var start = Math.max(index - half_length, 0); var end = Math.min(start == 0 ? MAX_HISTORY_MENU_ITEMS : index + half_length + 1, count); if (end == count) start = Math.max(count - MAX_HISTORY_MENU_ITEMS, 0); var tooltipBack = gNavigatorBundle.getString("tabHistory.goBack"); var tooltipCurrent = gNavigatorBundle.getString("tabHistory.current"); var tooltipForward = gNavigatorBundle.getString("tabHistory.goForward"); for (var j = end - 1; j >= start; j--) { var item = document.createElement("menuitem"); var entry = sessionHistory.getEntryAtIndex(j, false); var uri = entry.URI.spec; var entryURI = BrowserUtils.makeURIFromCPOW(entry.URI); item.setAttribute("uri", uri); item.setAttribute("label", entry.title || uri); item.setAttribute("index", j); item.setAttribute("onclick", "gBrowser.selectedTab = gBrowser.addTab(this.getAttribute('uri'));"); if (j != index) { PlacesUtils.favicons.getFaviconURLForPage(entryURI, function (aURI) { if (aURI) { var iconURL = PlacesUtils.favicons.getFaviconLinkForIcon(aURI).spec; iconURL = PlacesUtils.getImageURLForResolution(window, iconURL); item.style.listStyleImage = "url(" + iconURL + ")"; } }); } if (j < index) { item.className = "unified-nav-back menuitem-iconic menuitem-with-favicon"; item.setAttribute("tooltiptext", tooltipBack); } else if (j == index) { item.setAttribute("type", "radio"); item.setAttribute("checked", "true"); item.className = "unified-nav-current"; item.setAttribute("tooltiptext", tooltipCurrent); } else { item.className = "unified-nav-forward menuitem-iconic menuitem-with-favicon"; item.setAttribute("tooltiptext", tooltipForward); } aParent.appendChild(item); } return true; }
Отсутствует
новую ветку делать не по феншую как бы...
по-моему наоборот.
Это профильная тема и в ней обсуждаем баги и пожелания к MenuWizard
а уже в соседних ветках можно выкладывать всякие наработки для MenuWizard
иначе наработки, баги и пожелания перемешаются в одной теме и будет сложно искать что-то конкретное.
но я не админ этого форума(и даже не знаком с ними), поэтому не могу создать отдельную ветку на форуме
если есть желание - свяжитесь с админами, может быть они согласятся это сделать.
Отсутствует
Просьба подсказать, почему в Menu Wizard есть пункт "Перезагрузить изображение", а в самом браузере его не видно?
И ещё, в последней версии некоторые пункты не отключаются, например, в Закладках.
Отредактировано Wondrous (07-02-2016 22:30:28)
Отсутствует
новую ветку делать не по феншую как бы...
создал три темы:
[MenuWizard] Подменю с историей вкладки в её контекстном меню
[MenuWizard] Поменять/установить значки у меню
[MenuWizard] Загрузить/Восстановить значки сайтов в закладках
Просьба подсказать, почему в Menu Wizard есть пункт "Перезагрузить изображение", а в самом браузере его не видно?
Видимо это меню появляется только при определенных событиях - например когда вы вызвали контекстное меню на не загруженной картинке
И ещё, в последней версии некоторые пункты не отключаются, например, в Закладках.
Настройки - "Установить ID для меню, если это меню не имеет уникальный идентификатор"
Отредактировано pag77 (08-02-2016 15:51:17)
Отсутствует
pag77
По идее, так раньше и было, когда картинка не загружена, открываешь на том месте контекстное меню и был пункт "Перезагрузить изображение", сейчас же его никогда не видно.
Настройки - "Установить ID для меню, если это меню не имеет уникальный идентификатор". Включил, но всё равно те пункты остались с замком и не доступны для редактирования.
Отсутствует
Включил, но всё равно те пункты остались с замком и не доступны для редактирования.
какие именно пункты? покажите скриншот.
да, и еще: несколько версий назад, что бы сохранить позицию скроллинга в закладках и журнале посещенных сайтов, мне пришлось пожертвовать некоторыми функциями в закладках/журнале
вполне возможно что ваши меню попали под запрет изменения
извините за причиненные неудобства
Отсутствует
pag77
По идее, так раньше и было, когда картинка не загружена, открываешь на том месте контекстное меню и был пункт "Перезагрузить изображение", сейчас же его никогда не видно.Настройки - "Установить ID для меню, если это меню не имеет уникальный идентификатор". Включил, но всё равно те пункты остались с замком и не доступны для редактирования.
Когда-то я установил расширение, добавляющее в контекстное меню подобный пункт и позволяющее загрузить изображение, если оно не загрузилось.
Но не всегда это удавалось и я удалил это расширение.
Дело здесь не в Меню Визарде имхо.
Есть СВ кнопка [CB]Reload Broken Images которая пытается перезагрузить все недозагруженные изображения
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Замочки куда-то пропали, осталось это:
попробуйте повторить проблему на этой версии:
https://www.dropbox.com/s/5s1kpngxde6u2 … d-4.01.xpi
перед установкой из дропбокса выполните эти шаги:
about:config
xpinstall.signatures.required = false
Отсутствует
Некоторое время назад задавал тут вопрос https://forum.mozilla-russia.org/viewto … 39#p702239
В последних версиях данного приложения этот недостаток уже устранен?
Отредактировано Hobbix (08-02-2016 20:05:44)
Отсутствует
День добрый.
У меня установлена версия 4.01 - почему-то не отключаются оригинальные разделители.
Точнее как не отключаются? - в настройках плагина у них стоит галка, но серая и не снимающаяся.
При этом разделители в разделах меню файерфокса не отображаются, но когда на любое меню нажимаешь - видно что эти разделители там есть, но за долю секунды исчезают...
Причем если я ставлю в компанию к Визарду устаревшие плагины menu editor или menu manipulator, то даже если я в них ничего не настраиваю - оригинальные разделители при открытии менюшек появляться прекращают, а в Визарде у них можно снять галку... Но если те плагины старые удалить, то опять всё возвращается к состоянию "по умолчанию".
Можно что-то сделать, чтоб избавиться от этих разделителей?
П.С.: Выше опять же ссылка на 4.01 наверное для похожей проблемы - скачал и установил, ничего не изменилось.
Отредактировано Dan Dare (12-02-2016 21:29:45)
Dan Dare: Pilot Of The Foretime
Отсутствует
П.С.: Выше опять же ссылка на 4.01 наверное для похожей проблемы - скачал и установил, ничего не изменилось.
еще выше
Настройки - "Установить ID для меню, если это меню не имеет уникальный идентификатор"
но сепараторы реагируют на это меню только в версии 4.01, которая из дропбокса
Отсутствует
pag77 - спасибо! Получилось. Правда не с первого раза. Включил галку, отключил в меню Файл разделители, а в меню Вид разделители остались старые не отключаемые (т.е. у тех, которые теперь можно стало отключать появился ещё ID какой-то, а другие так и остались двойными полосками).
Вернул всё на место, перезагрузил браузер, включил галку, опять перезагрузил браузер и снял во всех меню уже галки.
Dan Dare: Pilot Of The Foretime
Отсутствует