Dumby, а можно как-то сохранить куки с одного сайта, потом после работы не просто очищать текущие куки сайта, а восстанавливать те что были сохранены?
Отредактировано emlen (23-02-2016 22:48:51)
SeaMonkey 2.39 forever
Отсутствует
fokanik, ага, спасибо, работает. Отличная кнопка.
Ну или так, с иконкой rox player на кнопке:
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%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20PotPlayerMini%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bmoz-icon%3A//file%3A//C%3A%5CUsers%5CHome%5CAppData%5CLocal%5CROX%20Player%5Croxplayer.exe%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20Rox%20Player%22%3B%0A%0Avar%20path%20%3D%20%22C%3A%5C%5CUsers%5C%5CHome%5C%5CAppData%5C%5CLocal%5C%5CROX%20Player%5C%5Croxplayer.exe%22%3B%0A%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29open%28path%29%3B%0A%7D%3B%0A%0Aself.image%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0A%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0Avar%20menuitem%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%29%3B%0Amenuitem.setAttribute%28%22label%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20Rox%20Player%22%29%3B%20%20%20%20%20%20%0Amenuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0Amenuitem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20path%29%3B%20%0Amenuitem.onclick%20%3D%28%29%3D%3E%20play%28gContextMenu.getLinkURL%28%29%2C%22rox%3A%22%29%3B%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menuitem.hidden%20%3D%20%21gContextMenu.onLink%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%3D%3E%20menuitem.remove%28%29%20%29%3B%0A%0A%20%20%20%20%0Afunction%20play%28link%2C%20param%29%20%7B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Blink%2C%20param%5D%2C%202%29%3B%0A%7D%3B%0A%0Afunction%20open%28%20path%20%29%20%7B%0A%20%20%20%20%20%20var%20file%20%3D%20Cc%5B%27@mozilla.org/file/local%3B1%27%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20%20%20%20file.initWithPath%28%20path.replace%28/%5C//g%2C%27%5C%5C%5C%5C%27%29%20%29%3B%20%0A%20%20%20%20%20%20file.launch%28%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%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
this.tooltipText = "Л: Открыть Rox Player"; var path = "C:\\Users\\Home\\AppData\\Local\\ROX Player\\roxplayer.exe"; this.onclick =e=> { if ( e.button == 0 )open(path); }; self.image = "moz-icon://file://" + path; var contextMenu = document.getElementById("contentAreaContextMenu"); var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open")); menuitem.setAttribute("label", "Открыть в Rox Player"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =()=> play(gContextMenu.getLinkURL(),"rox:"); addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu); addDestructor(()=> menuitem.remove() ); function play(link, param) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); file.initWithPath(path); process.init(file); process.run(false, [link, param], 2); }; function open( path ) { var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( path.replace(/\//g,'\\\\') ); file.launch(); };
Отсутствует
fokanik
Жаль ссылки Ютуба ещё не открывает.
PotPlayer в предыдущей кнопке открывает. Вернее, добавляет ссылки в список воспроизведения. А если нажать на кнопку с открытой страничкой Ютуб видео - проигрывает сразу.
Отредактировано Baron_ (24-02-2016 00:08:04)
Отсутствует
А если нажать на кнопку с открытой страничкой Ютуб видео - проигрывает сразу.
Или кликнуть правой кнопкой пустое место на странице - и выбрать в меню potplayer - то тоже откроет открытое на странице ютуб видео.
Отсутствует
emlen пишетbunda1, а пункты меню сохранения картинки могут иметь кастомизированные, вручную назначенные названия?
Что значит кастомизированные?
Эмм, ну типа максимально подстраиваемое под конечного пользователя. Так, что пункты меню можно не только перемещать, но и назначать им лэйблы...ну всмысле повторюсь - названия пунктов меню введенные вручную, а не взятые из имен назначенных на них папок.
Добавлено 24-02-2016 10:45:24
Не исключаю что выразился не совсем правильно, вот объяснил, что имел ввиду
Отредактировано emlen (24-02-2016 10:45:24)
SeaMonkey 2.39 forever
Отсутствует
Автоматически добавлять выделенный текст в SearchBar( Firefox24+ ) от 21.02.2016.
тогда при удержании курсора на панели поиска будет автоматически открываться меню с поисковиками. Время удержания курсора на панели поиска => 800 можно менять как вам удобней.
Эта функция перестаёт работать после перезагрузки . Вызов редактора кнопки и нажатие ОК восстанавливает работоспособность до перезагрузки.
Отсутствует
Это у всех в из меню кнопок Custom Buttons пропал пункт Удалить с панели инструментов? В кнопках расширений этот пункт присутствует.
У меня такого пункта на -47.0a1 нет.
Добавлено 24-02-2016 21:04:10
Эта функция перестаёт работать после перезагрузки
У меня на -47.0a1 работает после перезагрузки, может попробуй с таймером:
setTimeout(()=> { var box = BrowserSearch.searchBar._textbox; box.onmouseleave =()=> box.mo = true; box.onmouseover =()=> { box.mo = false; setTimeout(()=> !box.mo && box.childNodes[1].children[0].children[0].click(), 800); }; addDestructor(()=> box.onmouseover =()=> null ); }, 1500);
Отредактировано bunda1 (24-02-2016 21:04:10)
Отсутствует
У меня такого пункта на -47.0a1 нет.
Понятно, значит бум ждать обновления. Ну или может Dumby захочет очередной раз мастерством блеснуть.
У меня на -47.0a1 работает после перезагрузки, может попробуй с таймером:
Не помогло, к сожалению.
Отсутствует
emlen
Добавил возможность перемещать пункты меню по меню верх или вниз прокруткой колёсика мыши на пункте меню: Сохранять изображение без запроса в установленные папки
Спасибо!
Как пункт "Сохранить в папку" переместить выше,в контекстном меню.Menu editor его не видит.
А можно сделать кнопку"Настроить контекстное меню",чтобы при нажатой кнопке можно было перетаскивать пункты вверх,вниз.
Отсутствует
voqabuhe
Пункт «Удалить с панели инструментов» добавлялся в 0.0.5.9pre1 и не целиком переехал в 0.0.5.8.x.
Можно поискать по коду "removeFromToolbar", где работает – найдется в двух файлах:
custombuttons.jar\content\custombuttons\overlay.js
custombuttons.jar\content\custombuttons\cbbutton.js
Добавлено 25-02-2016 09:41:22
Написал еще и сюда: http://custombuttons.sourceforge.net/fo … 493#p11493
Отредактировано Infocatcher (25-02-2016 09:41:22)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Как пункт "Сохранить в папку" переместить выше,в контекстном меню.Menu editor его не видит.
В:
вместо saveimage положи contextMenu.children[41] и измени 41 так как тебе удобней.
Отсутствует
Ребята как бы переделать этот код чтобы выбросить всё лишнее(нажатие ЛКМ,ПКМ и т.д.) чтобы только пункты в контекстном остались. Сам пыжился, никак.
if ( this.hasAttribute("initialized") ) return; this.setAttribute("context", ""); this.tooltipText="PotPlayer --->\n<--- SMPlayer"; var id = "context-bookmarklink"; // Место врезки this.onclick = function(e) { if ( e.button == 0 ) Play(array[0][1], "-add-to-playlist", "href"); // ПКМ if ( e.button == 1 ) gShowPopup(this); // Редактировать кнопку if ( e.button == 2 ) Play(array[1][1], "/add", "href"); // ЛКМ } var contextMenu = document.getElementById("contentAreaContextMenu"); var sepOpen = document.getElementById(id); var array = [ ["SMPlayer", "C:\\Program Files\\SMPlayer\\smplayer.exe", "-add-to-playlist" ], //http://smplayer.sourceforge.net/ ["PotPlayer", "C:\\Program Files\\DAUM\\PotPlayer\\PotPlayerMini.exe", "/add" ], //https://potplayer.daum.net/?lang=ru ["Video Lan", "C:\\Program Files\\VideoLan\\vlc\\vlc.exe", "-AddToPlaylist" ], //http://www.videolan.org/vlc/ ["Rox Player", "C:\\Users\\Home\\AppData\\Local\\ROX Player\\roxplayer.exe", "rox:"], //http://roxplayer.com/ ["Download Master", "P:\\PortableApps\\PortableApps\\Download Master Portable\\dmaster.exe", ""], ["separator"] ] array.forEach(function(m) { if (m == "separator") { contextMenu.insertBefore(document.createElement("menuseparator"), sepOpen); return; }; var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), sepOpen); menuitem.id = "open-in"; var label = m[0], path = m[1], param = m[2]; menuitem.setAttribute("label", label); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =()=> Play(path, param, ""); }); addDestructor(function() { [...contextMenu.childNodes].forEach(function(el) { if (el.id == "open-in") contextMenu.removeChild(el); }) }); function Play(path, param, link){ var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath(path); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); if (link == "href" || !gContextMenu.onLink) process.run(false, [content.location.href, param], 2); else process.run(false, [gContextMenu.getLinkURL(), param], 2); }
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
bunda1, подскажите пожалуйста, что в моем "хелло вёрлде" неправильно, почему код не отрабатывает?
var uri = tab.linkedBrowser.currentURI; var tldsrv = Components.classes["@mozilla.org/network/effective-tld-service;1"] .getService(Components.interfaces.nsIEffectiveTLDService); var sDomain = tldsrv.getBaseDomain(uri); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, self.label + " ", 'Получено значение: ' + sDomain, false, "", null, "");
Отредактировано emlen (25-02-2016 13:00:03)
SeaMonkey 2.39 forever
Отсутствует
bunda1, подскажите пожалуйста, что в моем "хелло вёрлде" неправильно, почему код не отрабатывает?
var uri = gBrowser.currentURI; var sDomain = Services.eTLD.getBaseDomain(uri); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, self.label + " ", 'Получено значение: ' + sDomain, false, "", null, "");
Отсутствует
Пункт «Удалить с панели инструментов» добавлялся в 0.0.5.9pre1 и не целиком переехал в 0.0.5.8.x.
Можно поискать по коду "removeFromToolbar", где работает – найдется в двух файлах:
custombuttons.jar\content\custombuttons\overlay.js
custombuttons.jar\content\custombuttons\cbbutton.jsДобавлено Сегодня 09:41:22
Написал еще и сюда: http://custombuttons.sourceforge.net/fo … 493#p11493
Понятно, спасибо.
Отсутствует
повторюсь - названия пунктов меню введенные вручную, а не взятые из имен назначенных на них папок.
По СКМ.
// Сохранять изображение без запроса в установленные папки, из контекстного меню, от 22.02.2016. ............... ((contextMenu, saveimage) => { var s = "CB.allPathsToImageFolders"; var defaultDownFolder = Services.downloads.defaultDownloadsDirectory.path; var menu = contextMenu.insertBefore(document.createElement("menu"), contextMenu.children[41]); menu.setAttribute("label", "Сохранить в папку:"); addEventListener("popupshowing", e=> menu.hidden = saveimage.hidden, false, contextMenu); addDestructor(()=> menu.remove() ); var menuPopup = menu.appendChild( document.createElement("menupopup") ); menuPopup.setAttribute('style', 'overflow: auto'); function setItemsToMenuPopup() { menuPopup.textContent = ""; getPaths().split(",").forEach(path=> { var menuitem = document.createElement("menuitem"); menuitem.setAttribute("tooltiptext", path); menuitem.setAttribute("label", (/►/.test(path) ? path.split("►") : path.split("\\") ).pop() ); menuitem.onwheel =e=> moveMenuItem(e, path); menuitem.onclick =e=> { e.button == 0 && downloadToFolder(path); e.button == 1 && changeMenuitemLabel(path); e.button == 2 && deleteFolder(path) }; menuPopup.appendChild( menuitem ); }); var sep = menuPopup.appendChild( document.createElement("menuseparator") ); var menuitem = menuPopup.appendChild( document.createElement("menuitem") ); menuitem.setAttribute("label", "Добавить папку"); menuitem.onclick =e=> setPaths(); }; setItemsToMenuPopup(); function downloadToFolder(path) { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); try { var dir = Services.prefs.getComplexValue("browser.download.dir", Ci.nsISupportsString).data } catch(e) { var dir = defaultDownFolder }; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path) ); saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", dir) ); }; function changeMenuitemLabel(path) { var val = custombuttons.promptBox('', 'Ведите другое название папки')[1]; if ( val == '' ) return; var arr = getPaths().split(","); arr[arr.indexOf(path)] = path + "►" + val; cbu.setPrefs(s, convertFromUnicode("UTF-8", arr)); setItemsToMenuPopup(); }; function deleteFolder(path) { var paths = getPaths().split(",").filter(el=> { return (el !== path) }); cbu.setPrefs(s, convertFromUnicode("UTF-8", (paths.length ? paths : defaultDownFolder))); setItemsToMenuPopup(); }; function moveMenuItem(e, path) { var arr = getPaths().split(","); var pathPos = arr.indexOf(path); var index = (e.deltaY < 0 ? -1 : 1); if ( (pathPos == 0 && index == -1) || (pathPos+1 == arr.length && index == 1)) return; arr[pathPos] = arr[pathPos + index]; arr[pathPos + index] = path; cbu.setPrefs(s, convertFromUnicode("UTF-8", arr)); setItemsToMenuPopup(); }; function setPaths() { var fp = window.makeFilePicker(); fp.init( window, "Укажите путь к папке для сохранения изображений", fp.modeGetFolder ); if ( fp.show() == fp.returnCancel ) return; cbu.setPrefs(s, convertFromUnicode("UTF-8", getPaths() + "," + fp.file.path)); setItemsToMenuPopup(); }; function getPaths() { try { return Services.prefs.getComplexValue(s, Ci.nsISupportsString).data; } catch(e) { return defaultDownFolder }; }; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-saveimage"));
Отсутствует