Это не тултип, а #alertBox. И одним стилем можно только все всплывашки передвинуть. Можно прикрутить обсервер в showAlertNotification и регистрировать и убирать только для него стиль, но, как я считаю,
Не стоит оно возни.
Отсутствует
В кнопке есть "// всплывающая подсказка ...." "Добавил в папку " как изменить позиционирование подсказки из правого нижнего угла, на право вверх.
А эсли так:
// Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 17.08.2016. ...................... addEventListener("dblclick", (e, targ = e.originalTarget)=> { if ( e.button || !targ._placesNode || !PlacesUtils.nodeIsFolder(targ._placesNode) ) return; var docTitle = (content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId(targ._placesNode); var folderTitle = PlacesUtils.bookmarks.getItemTitle(folderId); var currentURI = Services.io.newURI(content.location, null, null); PlacesUtils.bookmarks.insertBookmark(folderId, currentURI, 0, docTitle); // всплывающая подсказка .... var tooltip = gBrowser.appendChild(document.createElement("tooltip")); tooltip.style.cssText = "-moz-box-orient: horizontal; text-align: center;"; var image = tooltip.appendChild(document.createElement("image")); image.setAttribute("src", "chrome://custombuttons/skin/stdicons/rbutton.png"); var label = tooltip.appendChild(document.createElement("label")); label.setAttribute("value", "Добавил: " + docTitle + " в папку: " + folderTitle); tooltip.showPopup(e.target, -1, -1, 'popup', 'bottomleft', 'topleft'); setTimeout(()=> gBrowser.removeChild(tooltip), 3000); document.getElementById("contentAreaContextMenu").hidePopup(); })
Отсутствует
Вопрос знающим людям! На Firefox49 перестали работать коды для получения выделенного текста из страницы:
и для получения выделенного текста из текстовых полей:
var el = document.commandDispatcher.focusedElement; var sel = el.value.substring(el.selectionStart, el.selectionEnd);
В чём тут дело и чем теперь получать выделенный текст?
Отсутствует
bunda1
А там все та же история с мультипроцессным режимом.
Что характерно, вспомогательных функций, вроде, не видать – надо втыкать свой frame script и велосипедировать.
В том же chrome://browser/content/nsContextMenu.js смухлевали:
if (this.isRemote) { this.selectionInfo = gContextMenuContentData.selectionInfo; } else { this.selectionInfo = BrowserUtils.getSelectionDetails(window); }
Там этот gContextMenuContentData есть только при открытом меню страницы...
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
bunda1
А там все та же история с мультипроцессным режимом.
Понятно . Кстати, сейчас нечаянно обнаружил что:
всё таки отдаёт выделенный текст из страницы даже на . Осталось выяснить как получить выделенный текст из текстовых полей и из 'PRE'.
Отсутствует
Осталось выяснить как получить выделенный текст из текстовых полей и из 'PRE'.
https://forum.mozilla-russia.org/viewto … 62#p714262
таки отдаёт выделенный текст из страницы
тоже с e10s работает.
Отсутствует
bunda1 пишетОсталось выяснить как получить выделенный текст из текстовых полей и из 'PRE'.
Спасибо.
Отсутствует
gBrowser.contentDocument.defaultView.getSelection()
document.commandDispatcher.focusedWindow.content.document.getSelection()
Не факт что работает.
https://developer.mozilla.org/en-US/Fir … s_pitfalls
CB работает только благодаря прокладкам совместимости в FF.
Если в install.rdf добавить строку <em:multiprocessCompatible>true</em:multiprocessCompatible>
чтобы не загружались прокладки для расширения, то эти коды не работают.
Отсутствует
Во, вот так мне понравилось, удобно:
/* Этот код октырвает папку с закладками (воложенные папки ингнорируются). Открытие закладок происходит по очереди: - глобально отключается javascript - на время загрузки страниц - сначала открываются первые три закладки и после их полной загрузки открываются следующие три закладки и т.д - общее количество открытых влкадок ограниченно ~15 - после открытия и загрузки всех вкладок - включается javascript При нажитии ЛКМ на кнопку - просходит приостановка просмотра папки, когда все вкладки загрузятся включится javascript. При повторном нажатии ЛКМ - отключается javascript и просмотр папки продолжается с места приостановки. */ this.tooltipText = "folder navigator:\n"+"Перетащите папку закладок на кнопку.\n"+ "ЛКМ - Отключить/Продолжить навигацию."; var i, t, m; var links = []; this.ondragover = () => false; this.ondrop = e => { var place = e.dataTransfer.getData("text/x-moz-place"), obj; if (place && (obj = JSON.parse(place)).type == "text/x-moz-place-container" && !("annos" in obj && obj.annos.some(anno => anno.name.startsWith("livemark/") || anno.value == "AllBookmarks"))) { var html = e.dataTransfer.getData("text/html"); var doc = new DOMParser().parseFromString(html, "text/html"); links = [...doc.querySelectorAll("body > DL > DD > A")].map(a => a.getAttribute("HREF")); } i = -1; t = -1; m = links.length; run(); } function run(){ if(i == -1 || t == m) {gBrowser.mPrefs.setBoolPref("javascript.enabled", false); t = -1;} if(i >= m-1) { if([...gBrowser.tabs].some(tab=>{ return tab.getAttribute("busy") }) == 0) gBrowser.mPrefs.setBoolPref("javascript.enabled", true); else setTimeout(()=>run(), 500); return; } if(window.gBrowser.mTabs.length < 15) if([...gBrowser.tabs].some(tab=>{ return tab.getAttribute("busy") }) == 0) { if(i < m-1) {i++; gBrowser.addTab(links[i]); } if(i < m-1) {i++; gBrowser.addTab(links[i]); } if(i < m-1) {i++; gBrowser.addTab(links[i]); } } setTimeout(()=>run(), 500); return; } this.onclick = function(e){ if (e.button == 0){ if(i < m-1) {t = i; i = m; run(); return;} if(t > -1) {i = t; t = m; run(); return;} } }
Отсутствует
CB работает только благодаря прокладкам совместимости в FF.
Боюсь, версия, где прокладки перестанут работать, станет для меня последней. Я не осилю переделать свои кнопки под новые реалии. Я даже не понимаю, что и как, например, там работает.
Отсутствует
Отсутствует
не работает больше кнопка Make bookmarklet button ((
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%3EMake%20bookmarklet%20button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-4%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*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3Evar%20XML%20%3D%20window.XML%20%7C%7C%20%7B%7D%3B%0A%0Athis.%20showBookmarkletDialog%20%3D%20function%20%28callback%29%0A%7B%0A%20%20%20%20var%20ipi%20%3D%20XML.%20ignoreProcessingInstructions%3B%0A%20%20%20%20XML.%20ignoreProcessingInstructions%20%3D%20false%3B%0A%20%20%20%20var%20dialog%20%3D%20%27%5C%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%3F%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22resource%3A//gre/res/html.css%22%3F%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3Bdialog%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3D%22dlg02%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Custom%20Buttons%20bookmarklet%20maker%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ondialogaccept%3D%22return%20windowController.accept%28%29%3B%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bscript%20type%3D%22application/x-javascript%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B%21%5BCDATA%5B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20windowController%20%3D%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20accept%3A%20function%20%28%29%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20name%20%3D%20document.%20getElementById%20%28%22nametb%22%29.%20value%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20document.%20getElementById%20%28%22urltb%22%29.%20value%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20img%20%3D%20document.%20getElementById%20%28%22imgtb%22%29.%20value%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.%20arguments%20%5B0%5D%20%28name%2C%20url%2C%20img%29%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%5D%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/script%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bvbox%20flex%3D%221%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bgrid%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bcolumns%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bcolumn/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bcolumn%20flex%3D%221%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/columns%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brows%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Blabel%20value%3D%22Bookmarklet%20Name%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Btextbox%20id%3D%22nametb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/row%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Blabel%20value%3D%22Bookmarklet%20URL%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Btextbox%20id%3D%22urltb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/row%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Blabel%20value%3D%22Icon%20URL%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Btextbox%20id%3D%22imgtb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/row%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/rows%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/grid%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/vbox%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3B/dialog%26gt%3B%5Cn%5C%0A%20%20%20%20%27%3B%0A%20%20%20%20window.%20openDialog%20%28%22data%3Aapplication/vnd.mozilla.xul+xml%2C%22%20+%20dialog%2C%20%22%22%2C%20%22chrome%2Cdependent%2Cminimizable%2Cresizable%3Dyes%2Ccenterscreen%2Cdialog%3Dyes%22%2C%20callback%29%3B%0A%20%20%20%20XML.%20ignoreProcessingInstructions%20%3D%20ipi%3B%0A%7D%3B%0A%0Avar%20THIS%20%3D%20this%3B%0A%0Athis.%20makeBookmarklet%20%3D%20function%20%28bookmarkletName%2C%20bookmarkletCode%2C%20bookmarkletIcon%29%0A%7B%0A%20%20%20%20var%20bookmarklet%20%3D%20btoa%20%28bookmarkletCode%29%3B%0A%20%20%20%20custombuttons.%20cloneButton%20%28THIS%29%3B%0A%20%20%20%20var%20newButtonLink%20%3D%20custombuttons.%20makeButtonLink%20%28%22update%22%2C%20THIS.%20nextSibling.%20id%29%3B%0A%20%20%20%20var%20params%20%3D%20custombuttons.%20cbService.%20getButtonParameters%20%28newButtonLink%29.%20wrappedJSObject%3B%0A%20%20%20%20params.%20name%20%3D%20bookmarkletName%3B%0A%20%20%20%20params.%20code%20%3D%20%22getBrowser%20%28%29.%20loadURI%20%28atob%20%28%5C%22%22%20+%20bookmarklet%20+%20%22%5C%22%29%29%3B%22%3B%0A%20%20%20%20params.%20image%20%3D%20bookmarkletIcon%3B%0A%20%20%20%20params.%20wrappedJSObject%20%3D%20params%3B%0A%20%20%20%20custombuttons.%20cbService.%20installButton%20%28params%29%3B%0A%7D%3B%0A%0Athis.%20showBookmarkletDialog%20%28this.%20makeBookmarklet%29%3B%0A%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
У меня на FF49 вообще букмарклеты не работают.
Отсутствует
Подскажите, если я открываю окно с помощью window.open() можно в параметрах прописать что то вроде always on top - чтобы окно было всегда поверх всех остальных окон?
И еще вопрос, как скриптом клонировать текущую вкладку и открыть ее слева от теперешней текущей?
Отредактировано toxa (25-08-2016 10:39:01)
Отсутствует
И еще вопрос, как скриптом клонировать текущую вкладку и открыть ее слева от теперешней текущей?
var tab = gBrowser.duplicateTab(gBrowser.mCurrentTab); setTimeout(function() gBrowser.moveTabTo(tab, gBrowser.mCurrentTab._tPos), 500);
Отсутствует
Подскажите, если я открываю окно с помощью window.open() можно в параметрах прописать что то вроде always on top - чтобы окно было всегда поверх всех остальных окон?
alwaysRaised или modal
var openFeatures = "alwaysRaised,menubar=no,location=no,status=no,resizable,scrollbars,left=100,top=50,width=800,height=600"; window.open("https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Features_requiring_privileges", "", openFeatures);
Отредактировано turbot (25-08-2016 14:35:58)
Отсутствует
У меня на FF49 вообще букмарклеты не работают.
У меня работают. Может, пробовали на странице, где CSP запрещает? См.: 866522 – Bookmarklets affected by CSP
Отсутствует
У меня работают. Может, пробовали на странице, где CSP запрещает? См.: 866522 – Bookmarklets affected by CSP
Сейчас пробовал букмарклеты на разных страницах но все равно не работает, а вот на работает, наверно у меня на FF49 профиль сломан.
Упс, оказывается на FF49 у меня были отключены JavaScript
Отсутствует
Duche пишет:
В кнопке есть "// всплывающая подсказка ...." "Добавил в папку " как изменить позиционирование подсказки из правого нижнего угла, на право вверх.
А эсли так:
Супер, спасибо.
Отсутствует
Может я не смог найти и FF Exp Imp CB(Save CB buttons) уже есть исправленная? В 48 сохраняет, но что-то не то(кнопки не устанавливаются).
Отсутствует
Duche пишет:
Right Links
Точно. Ему спасибо.
А у меня контекстное маню есть
Только у закладок. Но не у папок. Да и только, как выше заметили, с Right Links. Так что подумаю еще.
Добрый день. Turbot не знаю что я на эксперементировал в коде с контекстным меню при ПКМ по папке. Теперь, пропало контекстное меню, при длинном клике из под Right Links. Но появился вызов контекстного меню при двойном клике по папке ПКМ . Включен Right Links или нет, теперь значение не имеет. Может поможет в поиске вызова контекстного меню на папке при одном клике ПКМ.
(contextMenu=> { var menu = contextMenu.insertBefore(document.createElement("menu"), contextMenu.children[0]); menu.setAttribute("id", "context_bookmarksToolbarPopup"); menu.setAttribute("class", "menu-iconic bookmark-item"); menu.setAttribute("label", "Открыть | Добавить как закладку в"); menu.setAttribute("image", "chrome://browser/skin/places/bookmarksToolbar.png"); addDestructor(()=> menu.remove()); var menuPopup = menu.appendChild(document.createElement("menupopup")); menuPopup.setAttribute("id", "context_bookmarksBOOKMARKS_MENUPopup"); menuPopup.setAttribute("placespopup", "true"); menuPopup.setAttribute("context", "placesContext"); menuPopup.setAttribute("openInTabs", "children"); menuPopup.setAttribute("tooltip", "bhTooltip"); menuPopup.setAttribute("popupsinherittooltip", "true"); menuPopup.setAttribute("onpopupshowing", "if (!this.parentNode._placesView) new PlacesMenu(event, 'place:folder=TOOLBAR')"); //Попадать из контекстного не в "Меню закладок"............ //menuPopup.setAttribute("onpopupshowing", "if (!this.parentNode._placesView) new PlacesMenu(event, 'place:folder=BOOKMARKS_MENU')"); //Попадать из контекстного не в "Панель закладок"............ menuPopup.setAttribute("oncommand", "BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"); //menuPopup.setAttribute("onclick", "BookmarksEventHandler.onClick(event, this.parentNode._placesView);"); menuPopup.setAttribute("onclick", "event.preventDefault(); event.stopPropagation(); BookmarksEventHandler.onClick(event, this.parentNode._placesView);");//Контекстное "Эксперимент"............ })(document.getElementById("contentAreaContextMenu")); // Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014. ................................ addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle ); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); document.getElementById("contentAreaContextMenu").hidePopup(); //закрытие контекстного меню после дойного клика............ });
Отредактировано Duche (26-08-2016 18:46:41)
Отсутствует