bunda1
Спасибо за кнопку, то что нужно.
okkamas_knife
Почитал, скажу так, всё таки для создания кнопок нужна хоть какая то база, плюс логическое мышление, ну или способности, к сожалению они у людей разные, что для одного как два пальца об асфальт, для другого непосильная задача.
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Задача:
Действие на картинке - и она открывается в "с:\up.exe"
Можно реализовать?
спасибо
Огромное спасибо Infocatcher!
Помог, уже не в первый раз!
Теперь: потянув картинку вверх = она заливается куда угодно, накладывается водяной знак и многое другое...
Одно движение мышкой - заменяет кучу "телодвижений"!
Отсутствует
Тогда и результат сюда же надо:
https://gist.github.com/Infocatcher/6201658
(в личной переписке вопрос ставился про DragIt, так что решение для него)
Сохраняет изображение из
во временную папку и запускает
с параметрами
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Добавил второй пример (работает в том числе и в Custom Buttons):
https://gist.github.com/Infocatcher/620 … allback-js
(Старый: https://gist.github.com/Infocatcher/620 … allback-js)
Извлекает изображения из выделения, сохраняет их во временную папку и передает в виде аргументов заданной программе, когда все изображения будут сохранены.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
bunda1
Недавно ты делал мне переключение на домашнюю жестом, но иногда приходится открывать двойным по титлбару http://forum.mozilla-russia.org/viewtopic.php?pid=556713#p556713
можно что придумать чтобы тоже не открывал заново а переключал на уже открытую домашнюю - chrome://desktop/content/desktop.html
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
bunda1
Недавно ты делал мне переключение на домашнюю жестом, но иногда приходится открывать двойным по титлбару можно что придумать чтобы тоже не открывал заново а переключал на уже открытую домашнюю - chrome://desktop/content/desktop.html
addEventListener("dblclick", function(e) { if ( e.button == 0 && document.getElementById('main-window').hasAttribute('tabsintitlebar') ) { e.preventDefault(); var desktopTab = true; for ( var i = 0; i < gBrowser.tabs.length; i++ ) { var mTab = gBrowser.mTabs[i]; if ( mTab.linkedBrowser.currentURI.spec == 'chrome://desktop/content/desktop.html') { gBrowser.selectedTab = mTab; var desktopTab = false; break; } } if ( desktopTab ) gBrowser.selectedTab = gBrowser.addTab('chrome://desktop/content/desktop.html'); } }, false, document.getElementById('TabsToolbar') );
Отсутствует
bunda1 У Infocatcherа можно посмотреть Custom_Buttons/Session_Bookmarks at master · Infocatcher/Custom_Buttons · GitHub
Отсутствует
Вопрос к знающим людям, как получить адрес ссылки при перетаскивании ссылки на кнопку?
Вроде работает:
this.ondragover = function(e) { custombuttons.alertSlide("alert", e.dataTransfer.mozGetDataAt("text/x-moz-url", 0)); };
Отсутствует
в личной переписке вопрос ставился про DragIt...
А можно как-то сделать код к DragIt, чтобы корректно сохранял содержимое ссылки в указанную в его настройках папку? Дело в том, что на некоторых ресурсах, особенно форумах, содержимое ссылки сохраняется как index.php или index.php, независимо от содержимого. При этом, если сменить расширение на нужное, оказывается, что файл скачался без ошибок, но с неверным именем и расширением. Подозреваю, что дело в самих ресурсах и ссылках на них, поскольку, в основном, все сохраняется правильно. Но тем не менее, есть ли возможность побороть подобные ошибки сохранения??
Отредактировано Baron_ (14-08-2013 02:27:09)
Отсутствует
на сколько сложно и возможно ли реализовать такое кнопкой?
Отсутствует
firepox
На албанский, в инициализацию новый кнопки:
this.onclick = function(e) { if ( e.button == 0 ) { var sel = getSelect(); if ( !sel )return; var url = "http://translate.google.com/translate_t?hl=ru#auto|sq|" + sel; gBrowser.selectedTab = gBrowser.addTab( url ); } }; function getSelect() { window.content.focus(); var selection = document.commandDispatcher.focusedWindow.getSelection(); if ( selection.toString().length == 0 ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } } return ( selection == '') ? false : selection; };
Добавлено 14-08-2013 21:47:32
Насчёт перевода с албанского обратно на русский я не понял.
Отредактировано bunda1 (14-08-2013 21:48:27)
Отсутствует
Люди, подскажите, как удалять обработчики, если они заданы таким образом:
// find bar, открыть/закрыть двойным СКМ на странице gBrowser.addEventListener("dblclick", function (event){ if (event.button !== 1) return; event.preventDefault(); gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close(); Find(event); }, false);
а то зашел/вышел в панель инструментов и уже траблы...
Отсутствует
Люди, подскажите, как удалять обработчики, если они заданы таким образом:
а то зашел/вышел в панель инструментов и уже траблы...
// Переключать панель поиска двойным средним кликом на странице addEventListener("dblclick", function(e) { if ( e.button !== 1 ) return; e.preventDefault(); gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close(); }, false, gBrowser );
Добавлено 21-08-2013 19:16:59
Но такой код будет работать только если в настройках отключено Использовать автоматическую прокрутку
Добавлено 21-08-2013 19:26:56
несложно всё необходимое для этого есть в сниппетах.
часть можно глянуть в кнопке Context Translate
Я уже эму сделал эту кнопку, копирует двойной перевод, но по не понятным причинам не везде работает, на пример на http://silver.ru/news/56602/ выделяем текст всей статьи и кнопка выбрасывает ошибку, может что подскажешь?
// Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.button == 0 ) { var sel = getSelect(); if ( !sel ) return; translateText( sel, 'sq'); } }; /* Получить выделенный текст из страницы или текстового поля, если текст не выделен функция отдаст 'false' ................................*/ function getSelect() { window.content.focus(); var selection = document.commandDispatcher.focusedWindow.getSelection(); if ( selection.toString().length == 0 ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } } return ( selection == '') ? false : selection; }; // Перевести текст в Google переводчике в маленьком окошке ................................ var background = 'none', fontSize = 'medium'; // фон и размер шрифта окошка перевода var winWidth = 0.4, winHeight = 0.4 // ширина и высота окошка перевода относительно размера страницы function translateText( text, language ) { const beg = "http://translate.google.com/translate_t?prev=hp&hl=" + language + "&js=y&text="; const end = "&file=&sl=auto&tl=" + language + "&history_state0=#"; var url = beg + text + end; var req = new XMLHttpRequest(); req.open("GET", url, true); req.onload = function() { var res = req.responseText; var suHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); var doc = document.implementation.createHTMLDocument(""); doc.body.appendChild(suHTML.parseFragment(res, false, null, doc.body)); var text = doc.getElementById("result_box").textContent; if ( language == 'sq' ) { translateText( text, 'ru'); return; }; gClipboard.write( text ); custombuttons.alertSlide("", "Скопировал двойной перевод"); } req.channel.loadFlags |= req.channel.LOAD_FROM_CACHE; // if possible req.send(null) };
Отредактировано bunda1 (21-08-2013 19:26:56)
Отсутствует
т.е. как я понял, достаточно убрать в начале gBrowser.addEventListener . . .
и добавить его в конце . . .}, false, gBrowser );
правильно?
интересно, а что это меняет?
Правильно, так обработчик не будет дублироваться при обновлении кнопки или кода и нормально удалится при удалении кнопки или кода. Почему так и что это меняет я не знаю.
Отредактировано bunda1 (21-08-2013 23:02:46)
Отсутствует
интересно, а что это меняет?
Custom Buttons предоставляет свои реализации функций addEventListener() и removeEventListener():
http://sourceforge.net/p/custombuttons/ … der.js#l43
А something.addEventListener() вызывает оригинальную функцию.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
bunda1
Infocatcher
спасибо
А если вот такой вид:
document.getElementById("alltabs-button").addEventListener("click", midclick, false);
то можно ли его заменить на такой?
addEventListener("click", midclick, false, document.getElementById("alltabs-button") );
и тоже не потребуется removeEventListener ?
Добавлено 22-08-2013 10:46:56
Infocatcher
В этом посте ты писал мне код для запуска проверки обновлений. Можно ли как-то его поправить, чтобы вкладка about:addons открывалась сразу в подразделе "Расширения" ? Просто сейчас, если закрыть about:addons находясь в другом подразделе, он так и запустится в нем.
Отредактировано Inko7 (22-08-2013 10:46:56)
Отсутствует
то можно ли его заменить на такой?
Да, можно.
и тоже не потребуется removeEventListener ?
Если логика работы не требует удалять слушателя событий (то есть когда нужно удалять только при удалении/обновлении), то не потребуется.
чтобы вкладка about:addons открывалась сразу в подразделе "Расширения" ?
Перед
добавить
var view = "addons://list/extension"; Services.obs.addObserver(function observer(aSubject, aTopic, aData) { Services.obs.removeObserver(observer, aTopic); aSubject.loadView(view); }, "EM-loaded", false);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует