Есть ли возможность самому указать каталог для сохранения изображений в коде инициализации кнопки?
В
// сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( link, 0, 0, 0, 1, null, content.document );
замени:
на:
var path = 'C:\\qwerty'; var run = cbu.getPrefs("browser.download.folderList"), use = cbu.getPrefs("browser.download.useDownloadDir"), dir = gPrefService.getComplexValue("browser.download.dir", Ci.nsISupportsString).data; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", path) ); saveImageURL(img, 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) );
вместо C:\\qwerty укажи путь к своей папке с двумя \\
Отсутствует
tom911 пишетЕсть ли возможность самому указать каталог для сохранения изображений в коде инициализации кнопки?
В
Выделить кодКод:
// сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( link, 0, 0, 0, 1, null, content.document );замени:
на:
Выделить кодКод:
var path = 'C:\\qwerty'; var {get} = Application.prefs, run = get("browser.download.folderList"), dwnPath = get("browser.download.dir"), p, r; if ( dwnPath ) p = dwnPath.value, dwnPath.value = path; else Application.prefs.setValue("browser.download.dir", path); r = run.value, run.value = 2; saveImageURL( img, 0, 0, 0, 1, null, content.document ); run.value = r; if (dwnPath) dwnPath.value = p;вместо C:\\qwerty укажи путь к своей папке с двумя \\
Отредактировано tom911 (15-12-2015 12:43:42)
Отсутствует
Подскажите, как сделать, чтобы новая вкладка (изображения, текст, ссылка) открывалась сразу за текущей вкладкой.
Замени весь код инициализации в кнопке на:
// CB drag and go, от 30.05.2015. ................................ function dragAndGo(e) { // стоп, если не страница с http(s) адресом if ( !content.location.protocol.startsWith("http") ) return; switch ( e.type ) { case "dragstart": self.startPoint = {x:e.screenX, y:e.screenY}; break; // получить начальные координаты перетаскивания case "dragover": Cc["@mozilla.org/widget/dragservice;1"].getService(Ci.nsIDragService).getCurrentSession().canDrop = true; break; case "drop": { // стоп, если перетаскивается в поле текстового ввода или из-за пределов окна браузера if ( !self.startPoint || e.target instanceof Ci.nsIDOMNSEditableElement ) return; e.preventDefault(); // получить направление перетаскивания, L налево, R направо, U верх, D вниз и сбросить startPoint var [subX, subY] = [e.screenX - self.startPoint.x, e.screenY - self.startPoint.y]; var [distX, distY] = [(subX > 0 ? subX : (-subX)), (subY > 0 ? subY : (-subY))]; var direction = distX > distY ? (subX < 0 ? "L" : "R") : (subY < 0 ? "U" : "D"); self.startPoint = 0; // стоп, если перетаскивается меньше минимального расстояния if ( distX > distY ? distX < 16 : distY < 16 ) return; // получить перетаскиваемый текст или адрес ссылки или изображения var text = e.dataTransfer.getData("text/unicode"); var img = e.dataTransfer.getData("application/x-moz-file-promise-url").split("\n")[0]; var textLink = /^([a-z]+:\/\/)?([a-z]([a-z0-9\-]*\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-z][a-z0-9_]*)?$|^custombutton:\/\/\S+$/.test(e.dataTransfer.getData("text/unicode")); var link = e.dataTransfer.getData("text/x-moz-url").split("\n")[0]; var link = textLink ? text : link; // позиция для новый вкладки var pos = gBrowser.mCurrentTab._tPos + 1; // Ссылки .... if ( link ) { if ( direction == "U" ) { // открыть ссылку в новой активной странице gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(link), pos); } if ( direction == "D" ) { // открыть ссылку в новой фоновой странице gBrowser.moveTabTo(gBrowser.addTab(link), pos); } if ( direction == "L" ) { // сохранить ссылку saveImageURL( link, "save", null, false, false, null, content.document); } if ( direction == "R" ) { // сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( link, 0, 0, 0, 1, null, content.document ); } return; } // Изображения .... if ( img ) { if ( direction == "U" ) { // открыть изображение в новой активной странице gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(img), pos); } if ( direction == "D" ) { // открыть изображение в новой фоновой странице gBrowser.moveTabTo(gBrowser.addTab(img), pos); } if ( direction == "L" ) { // сохранить изображение saveImageURL( img, "save", null, false, false, null, content.document); } if ( direction == "R" ) { // сохранить изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( img, 0, 0, 0, 1, null, content.document ); } return; } // Выделенный текст .... if ( text ) { if ( direction == "U" ) { // поиск текста в google в новой активной странице gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab("http://www.google.com/search?q=" + text), pos); } if ( direction == "D") { // поиск текста в google в новой фоновой странице gBrowser.moveTabTo(gBrowser.addTab("http://www.google.com/search?q=" + text), pos); } if ( direction == "L" ) { // сохранить текст в .txt файл var fileTitle = content.document.title.slice(0, 50) + ' ' + (new Date()).toLocaleFormat("%H·%M·%S"); saveURL("data:text/plain," + encodeURIComponent(content.location + ("\r\n\r\n" + text )), fileTitle + ".txt", null, false, false, null, content.document); } if ( direction == "R" ) { // сохранить текст в .txt файл без запроса на место сохранения в папке загрузки var fileTitle = content.document.title.slice(0, 50) + ' ' + (new Date()).toLocaleFormat("%H·%M·%S"); saveURL("data:text/plain," + encodeURIComponent(content.location + ("\r\n\r\n" + text )), fileTitle + ".txt", null, false, true, null, content.document); } return; } } } }; ["dragstart", "dragover", "drop"].forEach(function(type) addEventListener(type, dragAndGo, false, gBrowser) ); // Подсказка кнопки ............................................................................ this.tooltipText = "CB drag and go \nЗапускает жести мыши для ЛКМ на странице \nЛ: Редактировать эту кнопку";
Отсутствует
Всем привет ! Классная кнопка ! Я её немного модифицировал (операции с текстом) может кому понравится
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%3ECB%20drag%20and%20go%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiivX/bJjz/2yX8/9sl/P/bJfz/2yX8/9kjfbnVn35RPyLo0T8oLHn/au6//6puf/+qbn//qm5//6quv/8ma3/bpj0/4e57P+Cte3/grXt/4K17P+Etu3/c6Hz51R9+0T/jKRE/7TC5//O1P//ztT//87U///O1P//0db//qq6/2yW9v9/sPH/d6vw/3ir8P94q/H/e63x/3Ke9udUfftE/4ujRP6wwOf/xc///8PN///Dzf//w83//8fQ//6ouP9tlPj/ear1/22i9P9uovP/bqLz/3Om9P9znfjnVH37RP+Lo0T/rr7n/7zK//+5x///ucf//7nH///AzP/+pbf/bZT5/3Sk9/9kmvf/ZZr2/2Wa9v9rn/f/c5z551R9+0T/i6NE/6u+5/+0xf//sML//7DC//+xwv//ucj//qO3/3CV+v94pfr/Z5n6/2eZ+v9nmfr/b5/7/3ed++dWfvtE/oykRP6sv+f+scX//63B//+twf//rcH//7bJ//6kuP9zlfrnfaH753ie++d4nvvneJ7753uf++d4mvrRaYz4PfuYrT38p7rR/q2/5/+svuf+rL7n/qu+5/+uwef9orbnZ4j4RFZ9+URVfflEVX35RFV9+URYfvlEaoz4PX+c9hL5p7cS+5itPf6MpET/i6RE/4ukRP+LpET/i6RE/JWrRAeqiUQHqohEB6qIRAeqiEQHqYhEB6mJRAiqiz0JqosS1qx5Etypaz3gpWBE4aVfROGlX0ThpV9E4aVfRNynaEQqt53nVcez51LHsudSx7LnUsay51PGs+c1u6TRCKqMPdypaz3nuHzR8MKE5/HCg+fxwoPn8cKD5/HDhefltHbnQL6p/4TYzv991sr/fdbK/33Wyv9/1sz/U8Wz5wepi0TgpWBE8MOG5/3Vmv/+1Jj//tSY//7UmP/+1p3/7bt8/z69qP9608f/btDC/27Qwv9u0ML/c9HE/1DEsOcHqItE4KVfRPDChef+0ZT//9CR///Qkf//0JH//9SY/+27fP89vKf/cc/B/2LKu/9jyrv/Y8q7/2nMvv9Pwq/nB6iKROClX0TwwYbn/s6P///Miv//zIv//8yK///Rlf/tunz/Pbyl/2fKu/9Uw7L/VMOz/1TDs/9dxrb/TsGt5wioikTgpF9E8MGG5/7Kif//yIP//8iD///Hg///zpH/7bp9/0K9pv93zsD/Zci4/2XIuP9lyLj/bcq8/1XDr+cIqItE4KVfRPDEjOf+0Jb//86Q//7OkP/+zZD//9Oc/+28gf83uaL/Rb6o/0G8pv9BvKb/Qbym/0K8pv87uqPnHrCVROKtb0TouH/n7byB/+27gP/tu4D/7buA/+29g//nt37/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20CB%20drag%20and%20go%2C%20%u043E%u0442%2030.05.2015.%20................................%0Afunction%20dragAndGo%28e%29%20%7B%0A%0A%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%20%u0441%20http%28s%29%20%u0430%u0434%u0440%u0435%u0441%u043E%u043C%0A%20%20%20if%20%28%20%21content.location.protocol.startsWith%28%22http%22%29%20%29%20return%3B%0A%0A%0A%20%20%20switch%20%28%20e.type%20%29%20%7B%0A%20%20%20%20%20%20case%20%22dragstart%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20self.startPoint%20%3D%20%7Bx%3Ae.screenX%2C%20y%3Ae.screenY%7D%3B%20break%3B%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0447%u0430%u043B%u044C%u043D%u044B%u0435%20%u043A%u043E%u043E%u0440%u0434%u0438%u043D%u0430%u0442%u044B%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%0A%0A%20%20%20%20%20%20case%20%22dragover%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/widget/dragservice%3B1%22%5D.getService%28Ci.nsIDragService%29.getCurrentSession%28%29.canDrop%20%3D%20true%3B%20break%3B%0A%0A%20%20%20%20%20%20case%20%22drop%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u043F%u043E%u043B%u0435%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u0432%u0432%u043E%u0434%u0430%20%u0438%u043B%u0438%20%u0438%u0437-%u0437%u0430%20%u043F%u0440%u0435%u0434%u0435%u043B%u043E%u0432%20%u043E%u043A%u043D%u0430%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21self.startPoint%20%7C%7C%20e.target%20instanceof%20Ci.nsIDOMNSEditableElement%20%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%2C%20L%20%u043D%u0430%u043B%u0435%u0432%u043E%2C%20R%20%u043D%u0430%u043F%u0440%u0430%u0432%u043E%2C%20U%20%u0432%u0435%u0440%u0445%2C%20D%20%u0432%u043D%u0438%u0437%20%u0438%20%u0441%u0431%u0440%u043E%u0441%u0438%u0442%u044C%20startPoint%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%5BsubX%2C%20subY%5D%20%3D%20%5Be.screenX%20-%20self.startPoint.x%2C%20e.screenY%20-%20self.startPoint.y%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%5BdistX%2C%20distY%5D%20%3D%20%5B%28subX%20%3E%200%20%3F%20subX%20%3A%20%28-subX%29%29%2C%20%28subY%20%3E%200%20%3F%20subY%20%3A%20%28-subY%29%29%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20direction%20%3D%20distX%20%3E%20distY%20%3F%20%28subX%20%3C%200%20%3F%20%22L%22%20%3A%20%22R%22%29%20%3A%20%28subY%20%3C%200%20%3F%20%22U%22%20%3A%20%22D%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20self.startPoint%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u0435%u0442%u0441%u044F%20%u043C%u0435%u043D%u044C%u0448%u0435%20%u043C%u0438%u043D%u0438%u043C%u0430%u043B%u044C%u043D%u043E%u0433%u043E%20%u0440%u0430%u0441%u0441%u0442%u043E%u044F%u043D%u0438%u044F%20%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20distX%20%3E%20distY%20%3F%20distX%20%3C%2016%20%3A%20distY%20%3C%2016%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u0435%u043C%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u043B%u0438%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0438%u043B%u0438%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20e.dataTransfer.getData%28%22text/unicode%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20img%20%3D%20e.dataTransfer.getData%28%22application/x-moz-file-promise-url%22%29.split%28%22%5Cn%22%29%5B0%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20textLink%20%3D%20/%5E%28%5Ba-z%5D+%3A%5C/%5C/%29%3F%28%5Ba-z%5D%28%5Ba-z0-9%5C-%5D*%5C.%29+%28%5Ba-z%5D%7B2%7D%7Caero%7Carpa%7Cbiz%7Ccom%7Ccoop%7Cedu%7Cgov%7Cinfo%7Cint%7Cjobs%7Cmil%7Cmuseum%7Cname%7Cnato%7Cnet%7Corg%7Cpro%7Ctravel%29%7C%28%28%5B0-9%5D%7C%5B1-9%5D%5B0-9%5D%7C1%5B0-9%5D%7B2%7D%7C2%5B0-4%5D%5B0-9%5D%7C25%5B0-5%5D%29%5C.%29%7B3%7D%5B0-9%5D%7C%5B1-9%5D%5B0-9%5D%7C1%5B0-9%5D%7B2%7D%7C2%5B0-4%5D%5B0-9%5D%7C25%5B0-5%5D%29%28%3A%5B0-9%5D%7B1%2C5%7D%29%3F%28%5C/%5Ba-z0-9_%5C-%5C.%7E%5D+%29*%28%5C/%28%5Ba-z0-9_%5C-%5C.%5D*%29%28%5C%3F%5Ba-z0-9+_%5C-%5C.%25%3D%26amp%3B%5D*%29%3F%29%3F%28%23%5Ba-z%5D%5Ba-z0-9_%5D*%29%3F%24%7C%5Ecustombutton%3A%5C/%5C/%5CS+%24/.test%28e.dataTransfer.getData%28%22text/unicode%22%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20link%20%3D%20e.dataTransfer.getData%28%22text/x-moz-url%22%29.split%28%22%5Cn%22%29%5B0%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20link%20%3D%20textLink%20%3F%20text%20%3A%20link%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0421%u0441%u044B%u043B%u043A%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20link%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20link%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28%20link%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22L%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28%20link%2C%20%22save%22%2C%20null%2C%20false%2C%20false%2C%20null%2C%20content.document%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22R%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0438%u043B%u0438%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%20%u043D%u0430%20%u043C%u0435%u0441%u0442%u043E%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0432%20%u043F%u0430%u043F%u043A%u0435%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%u043B%u0438%20%u043D%u0430%20%u0434%u0438%u0441%u043A%20C%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28%20link%2C%200%2C%200%2C%200%2C%201%2C%20null%2C%20content.document%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%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%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0418%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20img%20%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20img%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28%20img%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22L%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28%20img%2C%20%22save%22%2C%20null%2C%20false%2C%20false%2C%20null%2C%20content.document%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22R%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%20%u043D%u0430%20%u043C%u0435%u0441%u0442%u043E%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0432%20%u043F%u0430%u043F%u043A%u0435%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%u043B%u0438%20%u043D%u0430%20%u0434%u0438%u0441%u043A%20C%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveImageURL%28%20img%2C%200%2C%200%2C%200%2C%201%2C%20null%2C%20content.document%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%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%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0412%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20....%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20e.dataTransfer.getData%28%22text/unicode%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20e.dataTransfer.getData%28%22text/unicode%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28sel%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22U%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%29%3B%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22D%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22L%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20.txt%20%u0444%u0430%u0439%u043B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20fileTitle%20%3D%20content.document.title.slice%280%2C%2050%29%20+%20%27%20%20%27%20+%20%28new%20Date%28%29%29.toLocaleFormat%28%22%25H%B7%25M%B7%25S%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20saveURL%28%22data%3Atext/plain%2C%22%20+%20encodeURIComponent%28content.location%20+%20%28%22%5Cr%5Cn%5Cr%5Cn%22%20+%20text%20%29%29%2C%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%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%20fileTitle%20+%20%22.txt%22%2C%20null%2C%20false%2C%20false%2C%20null%2C%20content.document%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20direction%20%3D%3D%20%22R%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0438%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gFindBar.onFindCommand%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%3B%0A%5B%22dragstart%22%2C%20%22dragover%22%2C%20%22drop%22%5D.forEach%28function%28type%29%20addEventListener%28type%2C%20dragAndGo%2C%20false%2C%20gBrowser%29%20%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20............................................................................%0Athis.tooltipText%20%3D%20%22CB%20drag%20and%20go%5Cn%u0412%u044B%u043F%u043E%u043B%u043D%u044F%u0435%u0442%20%u0440%u0430%u0437%u043B%u0438%u0447%u043D%u044B%u0435%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u044F%20%u0441%20%u043E%u0431%u044A%u0435%u043A%u0442%u0430%u043C%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%5Cn%u0432%20%u0437%u0430%u0432%u0438%u0441%u0438%u043C%u043E%u0441%u0442%u0438%20%u043E%u0442%20%u043D%u0430%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u044F%20%u0438%u0445%20%u043F%u0435%u0440%u0435%u0442%u044F%u0433%u0438%u0432%u0430%u043D%u0438%u044F%3A%5Cn%5Cn%u0421%u0441%u044B%u043B%u043A%u0438%3A%5Cn%u0412%u0432%u0435%u0440%u0445%20%28U%29%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043D%u0438%u0437%20%28D%29%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043B%u0435%u0432%u043E%20%28L%29%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%20%u0437%u0430%u043F%u0440%u043E%u0441%u043E%u043C%5Cn%u0412%u043F%u0440%u0430%u0432%u043E%20%28R%29%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%5Cn%5Cn%u0418%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%3A%5Cn%u0412%u0432%u0435%u0440%u0445%20%28U%29%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043D%u0438%u0437%20%28D%29%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043B%u0435%u0432%u043E%20%28L%29%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%20%u0437%u0430%u043F%u0440%u043E%u0441%u043E%u043C%5Cn%u0412%u043F%u0440%u0430%u0432%u043E%20%28R%29%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%5Cn%5Cn%u0412%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%3A%5Cn%u0412%u0432%u0435%u0440%u0445%20%28U%29%20%u043F%u043E%u0438%u0441%u043A%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043D%u0438%u0437%20%28D%29%20%u043F%u043E%u0438%u0441%u043A%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0444%u043E%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5Cn%u0412%u043B%u0435%u0432%u043E%20%28L%29%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%20%u0437%u0430%u043F%u0440%u043E%u0441%u043E%u043C%5Cn%u0412%u043F%u0440%u0430%u0432%u043E%20%28R%29%20%u0438%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0Acustombuttons.editButton%28self%29%3B%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
Инициализация:
// CB drag and go, от 30.05.2015. ................................ function dragAndGo(e) { // стоп, если не страница с http(s) адресом if ( !content.location.protocol.startsWith("http") ) return; switch ( e.type ) { case "dragstart": self.startPoint = {x:e.screenX, y:e.screenY}; break; // получить начальные координаты перетаскивания case "dragover": Cc["@mozilla.org/widget/dragservice;1"].getService(Ci.nsIDragService).getCurrentSession().canDrop = true; break; case "drop": { // стоп, если перетаскивается в поле текстового ввода или из-за пределов окна браузера if ( !self.startPoint || e.target instanceof Ci.nsIDOMNSEditableElement ) return; e.preventDefault(); // получить направление перетаскивания, L налево, R направо, U верх, D вниз и сбросить startPoint var [subX, subY] = [e.screenX - self.startPoint.x, e.screenY - self.startPoint.y]; var [distX, distY] = [(subX > 0 ? subX : (-subX)), (subY > 0 ? subY : (-subY))]; var direction = distX > distY ? (subX < 0 ? "L" : "R") : (subY < 0 ? "U" : "D"); self.startPoint = 0; // стоп, если перетаскивается меньше минимального расстояния if ( distX > distY ? distX < 16 : distY < 16 ) return; // получить перетаскиваемый текст или адрес ссылки или изображения var text = e.dataTransfer.getData("text/unicode"); var img = e.dataTransfer.getData("application/x-moz-file-promise-url").split("\n")[0]; var textLink = /^([a-z]+:\/\/)?([a-z]([a-z0-9\-]*\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(:[0-9]{1,5})?(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-z][a-z0-9_]*)?$|^custombutton:\/\/\S+$/.test(e.dataTransfer.getData("text/unicode")); var link = e.dataTransfer.getData("text/x-moz-url").split("\n")[0]; var link = textLink ? text : link; // Ссылки .... if ( link ) { if ( direction == "U" ) { // открыть ссылку в новой активной странице gBrowser.selectedTab = gBrowser.addTab( link ); } if ( direction == "D" ) { // открыть ссылку в новой фоновой странице gBrowser.addTab( link ); } if ( direction == "L" ) { // сохранить ссылку saveImageURL( link, "save", null, false, false, null, content.document); } if ( direction == "R" ) { // сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( link, 0, 0, 0, 1, null, content.document ); } return; } // Изображения .... if ( img ) { if ( direction == "U" ) { // открыть изображение в новой активной странице gBrowser.selectedTab = gBrowser.addTab( img ); } if ( direction == "D" ) { // открыть изображение в новой фоновой странице gBrowser.addTab( img ); } if ( direction == "L" ) { // сохранить изображение saveImageURL( img, "save", null, false, false, null, content.document); } if ( direction == "R" ) { // сохранить изображение без запроса на место сохранения в папке загрузки или на диск C: saveImageURL( img, 0, 0, 0, 1, null, content.document ); } return; } // Выделенный текст .... if ( e.dataTransfer.getData("text/unicode") ) { var sel = e.dataTransfer.getData("text/unicode"); var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(sel); if ( direction == "U" ) { // поиск текста в текущем поисковике в новой активной странице gBrowser.selectedTab = gBrowser.addTab(submission.uri.spec, null, null, submission.postData); return; } if ( direction == "D") { // поиск текста в текущем поисковике в новой фоновой странице gBrowser.addTab(submission.uri.spec, null, null, submission.postData); return; } if ( direction == "L" ) { // сохранить текст в .txt файл var fileTitle = content.document.title.slice(0, 50) + ' ' + (new Date()).toLocaleFormat("%H·%M·%S"); saveURL("data:text/plain," + encodeURIComponent(content.location + ("\r\n\r\n" + text )), fileTitle + ".txt", null, false, false, null, content.document); } if ( direction == "R" ) { // искать текст на текущей странице gFindBar.onFindCommand(); } return; } } } }; ["dragstart", "dragover", "drop"].forEach(function(type) addEventListener(type, dragAndGo, false, gBrowser) ); // Подсказка кнопки ............................................................................ this.tooltipText = "CB drag and go\nВыполняет различные действия с объектами на странице\nв зависимости от направления их перетягивания:\n\nСсылки:\nВверх (U) открыть в новой активной вкладке\nВниз (D) открыть в новой фоновой вкладке\nВлево (L) сохранить с запросом\nВправо (R) сохранить в папку загрузки\n\nИзображения:\nВверх (U) открыть в новой активной вкладке\nВниз (D) открыть в новой фоновой вкладке\nВлево (L) сохранить с запросом\nВправо (R) сохранить в папку загрузки\n\nВыделенный текст:\nВверх (U) поиск в новой активной вкладке\nВниз (D) поиск в новой фоновой вкладке\nВлево (L) сохранить с запросом\nВправо (R) искать текст на текущей странице";
Отредактировано citehala (01-06-2016 21:26:54)
Отсутствует
citehala
var img = e.dataTransfer.getData("application/x-moz-file-promise-url").split("\n")[0];
на
var img = e.dataTransfer.types.contains('application/x-moz-nativeimage') && e.dataTransfer.getData("application/x-moz-file-promise-url");
и
на
Тогда функции, заданные для картинок, заработают.
Отредактировано turbot (02-06-2016 13:09:40)
Отсутствует
citehala
Похоже перестали вообще жесты на картинках работать. На них срабатывают те, что для ссылок заданы. Надо ждать, чтоб bunda1 поправил.
Проблема в том что многие ссылки оформлены как изображения и их адреса не на изображения а на какие то страницы, ну и жесты в кнопке одни и те для ссылок и изображений. Наверно прикручу дополнительные жести к кнопке специально для изображений.
Отсутствует
bunda1
Тут в ночнушках допилили наконец 906420 – [DnD] dataTransfer.items undefined in Firefox (implement DataTransferItem and DataTransferItemList): Add support for images to DataTransfer. Может, посмотрите, что с этим можно сделать?
Отсутствует
bunda1
Может, посмотрите, что с этим можно сделать?
Если я правильно понял о чём ты намекаешь, то у меня в планах добавить в кнопку дополнительные жесты и тогда можно будет для ссылок и изображений сделать разные жесты и проблем не будет.
Отсутствует
Полностью переписал код CB drag and go. Теперь в кнопке можно использовать любые сложные жесты мыши, например: RLR - направо> налево>направо. Дополнительно, в подсказке кнопки отображаются все установленные жесты мыши, после изменения жестов соответственно меняется подсказка кнопки, а в сплывающей подсказке страницы отображается информация о текущем жесте. Кнопка не работает при включенном многопроцессном режиме (e10)!
Отсутствует
пытался сдеалть
Выделенный текст:
Вверх (U) поиск в новой активной вкладке (поисковик по умолчанию)
Вниз (D) поиск в новой фоновой вкладке (поисковик по умолчанию)
в оригинале...не вышло. может кто подправит кнопку.
а то вот именно этого ей не хватает..
Отсутствует
Выделенный текст:
Вверх (U) поиск в новой активной вкладке (поисковик по умолчанию)
Вниз (D) поиск в новой фоновой вкладке (поисковик по умолчанию)
U: { name: "Поиск текста поисковиком по умолчанию в новой активной странице", cmd: ()=> { var submission = Services.search.currentEngine.getSubmission(self.text, null); gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false); }}, D: { name: "Поиск текста поисковиком по умолчанию в новой фоновой странице", cmd: ()=> { var submission = Services.search.currentEngine.getSubmission(self.text, null); gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, true, false); }},
Отсутствует
на 52 esr кнопка не пашет
Отсутствует
bunda1
да выключил все ок. а это в будем вообще возможно что с e10 будет работать?
Отсутствует
bunda1
а это в будем вообще возможно что с e10 будет работать?
Но как бы решение есть но очень сложное и потому мне уже не хочется вникать в это, потому что завтра Mozilla опять что то сломает.
Отсутствует