dedfor пишет:
Подскажите, пожалуйста, почему не закрывается файл через 3 сек:
Выделить код
Код:var file = Services.dirsvc.get("ProfD", Components.interfaces.nsIFile);
file.append("1.txt");
custombuttonsUtils.writeFile(file.path,convertFromUnicode("UTF-8","Слово"));
file.launch();
setTimeout(function(){file.close()},3000);
Потому что не такого метода file.close() для nsIFile, тут надо наверно надо закрывать текстовой редактор как процесс.
Я думал, что мой вопросик простенький (если умеем открыть файл, то сможем и закрыть), а оказался тоже нерешаемым. Жаль.
Кстати, а что, с помощью СВ можно и процессами управлять?
Отредактировано dedfor (17-03-2017 14:13:49)
Отсутствует
Добрый день. Не открывает в новой вкладке из Гугл, поправьте пожалуйста. И возможно сделать так, чтобы при закрытии открытой вкладки , был переход на вкладку откуда была открыта вкладка, а не на ближайшую левую. Подскажите, где посмотреть или как , типы открываемых ссылок в строках с "case"
// Открывать всё в новых вкладках, от 16.12.2013. ...................................... (function () { // открывать всё из ниже перечисленного в новых вкладках, если пустая страница открывать в текущей .... const where = whereToOpenLink; eval("whereToOpenLink = " + where.toString() .replace('return "current";\n}', (function() { switch ( e.originalTarget.id ) { case "bookmarksMenuPopup": case "goPopup": case "appmenu_bookmarksPopup": case "appmenu_historyMenupopup": case "personal-bookmarks": case "bookmarks-menu-button": case "historymenu_history": case "home-button": case "page-proxy-stack": case "go-button": case "urlbar-go-button": case "PopupAutoCompleteRichResult": case "searchbar": case "PopupAutoComplete": return "tab"; default: return "current"; } }).toString().replace(/^.*{|}$/g, "")+"}")); // открывать закладки и историю в новых вкладках, если букмарклети или пустая страница в текущей .... const openNode = PlacesUIUtils._openNodeIn; eval("PlacesUIUtils._openNodeIn = " + openNode.toString().replace(') {', '){\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) aWhere = "current";\n aWhere = (aWhere == "tab" || aNode.uri.startsWith("javascript:") ) ? "current" : "tab";\n') ); // если JavaScript ссылка или пустая страница открывать в текущей .... const linkIn = openLinkIn; eval("openLinkIn = " + linkIn.toString().replace(';', ';;\n if ( url.startsWith("javascript:") ) where = "current";\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) where = "current";') ); // команды адресной строки открывают всё связанное с адресной строкой в новых вкладках, если alt+ в текущей .... const handle = gURLBar.handleCommand; eval("gURLBar.handleCommand = " + handle.toString().replace('aTriggeringEvent.altKey;', 'aTriggeringEvent.altKey == false;')); // 'Вставить и перейти' из адресной строки открывает в новых вкладках .... addEventListener("popupshowing", function(e) { var menupopup = e.originalTarget; var pasteAndGo = menupopup.getElementsByAttribute("anonid", "paste-and-go")[0]; if ( !pasteAndGo ) return; pasteAndGo.setAttribute("oncommand", "event.preventDefault(); gURLBar.select(); goDoCommand('cmd_paste'); gURLBar.handleCommand(event);") }, false, document.getElementById("urlbar") ); // удалять изменения из внутренних функций Firefox .... addDestructor(function() { eval("whereToOpenLink = " + where); eval("PlacesUIUtils._openNodeIn = " + openNode); eval("openLinkIn = " + linkIn); eval("gURLBar.handleCommand = " + handle); });
Отсутствует
Я думал, что мой вопросик простенький (если умеем открыть файл, то сможем и закрыть), а оказался тоже нерешаемым.
Во многих скриптовых языках работа с файлами идёт так: каждая команда чтения или записи открывает файл, делает своё дело и сразу после этого закрывает файл. Поэтому отдельная команда закрытия им не нужна. Признаком именно такого метода работы с файлами в языке является отсутствие команды open().
Отсутствует
Кстати, а что, с помощью СВ можно и процессами управлять?
Насчёт управления процессами я не знаю. Но все процессы блокнота можно закрыть так:
var VBScript = 'strComputer = "."\ \nSet objWMIService = GetObject("winmgmts:" _\ \n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\ \nSet colProcessList = objWMIService.ExecQuery _\ \n("Select * from Win32_Process Where Name = \x27notepad.exe\x27")\ \nFor Each objProcess in colProcessList\ \nobjProcess.Terminate()\ \nNext'; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); file.exists() || custombuttonsUtils.writeFile(file.path, VBScript); file.launch();
Вместо notepad.exe в коде можно указать и другие процессы.
Отсутствует
Не открывает в новой вкладке из Гугл, поправьте пожалуйста.
А как ты открываешь ссылки из Гугла?
Подскажите, где посмотреть или как , типы открываемых ссылок в строках с "case"
Не понял, что за типы ссылок?
Отсутствует
dedfor пишет: Кстати, а что, с помощью СВ можно и процессами управлять?Насчёт управления процессами я не знаю. Но все процессы блокнота можно закрыть так:Выделить кодКод:var VBScript =
'strComputer = "."\
\nSet objWMIService = GetObject("winmgmts:" _\
\n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\
\nSet colProcessList = objWMIService.ExecQuery _\
\n("Select * from Win32_Process Where Name = \x27notepad.exe\x27")\
\nFor Each objProcess in colProcessList\
\nobjProcess.Terminate()\
\nNext';
var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
file.append("processTerminate.vbs");
file.exists() || custombuttonsUtils.writeFile(file.path, VBScript);
file.launch();Вместо notepad.exe в коде можно указать и другие процессы.
Отлично срабатывает. Огромное спасибо !!!!!!!!!!!!!!!!!!! Очень полезная вещь!!
Отредактировано dedfor (18-03-2017 07:15:34)
Отсутствует
Нет, я про другое
Я хочу чтобы после поиска в Гугл нужной мне информации , кликнув ЛКМ ответы открывались в новой вкладке. В Яндексе кликнув ЛКМ ответы на поисковые запросы открываются в новых вкладках , а G открывает в этой же вкладке, где и поисковик.
Отсутствует
Попробуйте установить поиск google.ru.
Я просто хочу попросить поправить эту кнопку , в части ,открывать всё в новых вкладках. Работает везде , кроме Гугл. И чтобы при закрытии открытой вкладки , был переход на вкладку откуда была открыта вкладка, а не на ближайшую левую.
// Открывать всё в новых вкладках, от 16.12.2013. ...................................... (function () { // открывать всё из ниже перечисленного в новых вкладках, если пустая страница открывать в текущей .... const where = whereToOpenLink; eval("whereToOpenLink = " + where.toString() .replace('return "current";\n}', (function() { switch ( e.originalTarget.id ) { case "bookmarksMenuPopup": case "goPopup": case "appmenu_bookmarksPopup": case "appmenu_historyMenupopup": case "personal-bookmarks": case "bookmarks-menu-button": case "historymenu_history": case "home-button": case "page-proxy-stack": case "go-button": case "urlbar-go-button": case "PopupAutoCompleteRichResult": case "searchbar": case "PopupAutoComplete": return "tab"; default: return "current"; } }).toString().replace(/^.*{|}$/g, "")+"}")); // открывать закладки и историю в новых вкладках, если букмарклети или пустая страница в текущей .... const openNode = PlacesUIUtils._openNodeIn; eval("PlacesUIUtils._openNodeIn = " + openNode.toString().replace(') {', '){\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) aWhere = "current";\n aWhere = (aWhere == "tab" || aNode.uri.startsWith("javascript:") ) ? "current" : "tab";\n') ); // если JavaScript ссылка или пустая страница открывать в текущей .... const linkIn = openLinkIn; eval("openLinkIn = " + linkIn.toString().replace(';', ';;\n if ( url.startsWith("javascript:") ) where = "current";\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) where = "current";') ); // команды адресной строки открывают всё связанное с адресной строкой в новых вкладках, если alt+ в текущей .... const handle = gURLBar.handleCommand; eval("gURLBar.handleCommand = " + handle.toString().replace('aTriggeringEvent.altKey;', 'aTriggeringEvent.altKey == false;')); // 'Вставить и перейти' из адресной строки открывает в новых вкладках .... addEventListener("popupshowing", function(e) { var menupopup = e.originalTarget; var pasteAndGo = menupopup.getElementsByAttribute("anonid", "paste-and-go")[0]; if ( !pasteAndGo ) return; pasteAndGo.setAttribute("oncommand", "event.preventDefault(); gURLBar.select(); goDoCommand('cmd_paste'); gURLBar.handleCommand(event);") }, false, document.getElementById("urlbar") ); // удалять изменения из внутренних функций Firefox .... addDestructor(function() { eval("whereToOpenLink = " + where); eval("PlacesUIUtils._openNodeIn = " + openNode); eval("openLinkIn = " + linkIn); eval("gURLBar.handleCommand = " + handle); });
Отсутствует
Duche
Я встречал что гугл, с украинским доменом например, открывает ответы на вкладке выдачи результатов. В поиске с русским доменом, ответы открываются в новой вкладке вообще без кнопок.
Отсутствует
Я встречал что гугл, с украинским доменом например, открывает ответы на вкладке выдачи результатов. В поиске с русским доменом, ответы открываются в новой вкладке вообще без кнопок..
Всё зависит от настроек: надо в нужном Гугле посмотреть Настройки-- Настройки поиска. Стоит ли нет галочка "Открывать результаты В новом окне". По-умолчанию стоит "Открывать в том же окне". Не забываем ещё, что после чистки куков всё возвращается на "по-умолчанию".
Ну а у Яндекса такой настройки нет, он всегда открывает в новой вкладке.
Отредактировано dedfor (18-03-2017 14:04:09)
Отсутствует
Настройки-- Настройки поиска.
Спасибо. Пока так. Осталось решить , чтобы при закрытии открытой вкладки , был переход на вкладку откуда была открыта вкладка, а не на ближайшую левую. Будем ждать уважаемого bunda1 ,может поможет доработать кнопку в части возвращения на вкладку откуда была открыта вкладка, а не на ближайшую левую.
Отсутствует
кнопку "Удалить куки текущего сайта в контекстном меню на странице" приходится каждый раз нажимать чтобы в контекстном меню отразилось эта строчка. Так задумано ли просто что-то не срабатывает?
Отсутствует
кнопку "Удалить куки текущего сайта в контекстном меню на странице" приходится каждый раз нажимать чтобы в контекстном меню отразилось эта строчка. Так задумано ли просто что-то не срабатывает?
А ты перемести код в вкладку Инициализации.
Отсутствует
Вопрос по кнопке остался нерешенным. Пытался прицепить код из кнопки.
var contextMenu = document.getElementById("contentAreaContextMenu"); var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open")); menuitem.setAttribute("label", "Открыть в PotPlayer"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =e=> play(gContextMenu.getLinkURL(), e.button ? "/add" : ""); addEventListener("popupshowing", ()=> { var youtube = gBrowser.contentDocument.location.host == "www.youtube.com"; menuitem.hidden = !gContextMenu.onLink || !youtube; }, false, contextMenu); addDestructor(()=> menuitem.remove() );
Отсутствует
Вопрос по кнопке остался нерешенным. Пункт меню появляется на домене но плеер не открывает ссылку из контекстного меню.
var hosts = ["youtube.com", "kinopoisk.ru", "fast-torrent.ru", "rutracker.org", "nnmclub.to"]; var contextMenu = document.getElementById("contentAreaContextMenu"); var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open")); menuitem.setAttribute("label", "Открыть в PotPlayer"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =e=> play(gContextMenu.getLinkURL(), e.button ? "/add" : ""); addEventListener("popupshowing", ()=> { menuitem.hidden = !gContextMenu.onLink || hosts.indexOf(content.document.domain.replace("www.", "")) == -1; }, 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); };
Отсутствует
bunda1
Не совсем та кнопка но суть уловил.
Готовая кнопка "Открыть в SimpleTV"...если кому понадобится. Установить свой путь к исполняемому файлу и свои домены, на которых нужен пункт контекстного меню.
var path = "X:\\SimpleTV\\tv.exe"; this.onclick =e=> { if ( e.button == 0 ) play(content.location.href, "-open"); }; self.image = "moz-icon://file://" + path; var playerName = path.split("\\").pop().replace(".exe",""); self.label = "Открыть в " + playerName; var hosts = ["youtube.com", "kinopoisk.ru", "fast-torrent.ru", "rutracker.org", "nnmclub.to"]; var contextMenu = document.getElementById("contentAreaContextMenu"); var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open")); menuitem.setAttribute("label", "Открыть в SimpleTV"); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =e=> play(gContextMenu.getLinkURL(), "-open"); addEventListener("popupshowing", ()=> { menuitem.hidden = !gContextMenu.onLink || hosts.indexOf(content.document.domain.replace("www.", "")) == -1; }, 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, [param, link], 2); }; self.tooltipText = "Л: Открыть в SimpleTV ";
Отсутствует
Может кто нибудь ответит. Есть ли кнопка на замену расширения Quick Context?
Может тут посмотри [CB]Context Search
Отсутствует
Это совсем не то.Context Search заменяет стандартный пункт контекстного меню страницы для поиска в текущем поисковике на новый.А Quick Context при выделении текста автоматом открывает контекстное меню в котором у меня стоят два пункта для перевода от cb кнопки google-translate.Очень удобно при переводе слова или фразы не нужно клацать пкм.Может сможете сделать такую кнопочку а чайники вроде меня будут вам при много благодарны Говорила мне мама учись сынок...
Добавлено 23-03-2017 01:08:08
Quick Context https://addons.mozilla.org/ru/firefox/addon/quick-context-2/
Отредактировано Rag (23-03-2017 01:08:08)
Отсутствует