Полезная информация

Вы можете получить техническую поддержку и просто поболтать в jabber-конференциях Mozilla Россия: support@conference.mozilla-russia.org — для решения проблем с программами Mozilla, talks@conference.mozilla-russia.org — для общения на свободные темы.

№5112-12-2015 00:13:46

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

tom911 пишет:

Есть ли возможность самому указать каталог для сохранения изображений в коде инициализации кнопки?

В

Выделить код

Код:

// сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C:
saveImageURL( link, 0, 0, 0, 1, null, content.document );

замени:

Выделить код

Код:

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 укажи путь к своей папке с двумя \\

Отсутствует

 

№5215-12-2015 12:39:29

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 145
UA: Firefox 43.0

Re: [CB]CB drag and go

скрытый текст

bunda1 пишет:

tom911 пишет:

Есть ли возможность самому указать каталог для сохранения изображений в коде инициализации кнопки?

В

Выделить код

Код:

// сохранить ссылку или изображение без запроса на место сохранения в папке загрузки или на диск C:
saveImageURL( link, 0, 0, 0, 1, null, content.document );

замени:

Выделить код

Код:

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)

Отсутствует

 

№5307-02-2016 12:03:15

Grian.aa
Участник
 
Группа: Members
Зарегистрирован: 06-06-2012
Сообщений: 13
UA: Firefox 44.0

Re: [CB]CB drag and go

Здравствуйте.
Подскажите, как сделать, чтобы новая вкладка (изображения, текст, ссылка) открывалась сразу за текущей вкладкой.
Заранее благодарен.:)

Отсутствует

 

№5407-02-2016 13:20:52

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

Grian.aa пишет:

Подскажите, как сделать, чтобы новая вкладка (изображения, текст, ссылка) открывалась сразу за текущей вкладкой.

Замени весь код инициализации в кнопке на:

Выделить код

Код:

// 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+_\-\.%=&amp;]*)?)?(#[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Л: Редактировать эту кнопку";

Отсутствует

 

№5507-02-2016 13:24:58

Grian.aa
Участник
 
Группа: Members
Зарегистрирован: 06-06-2012
Сообщений: 13
UA: Firefox 44.0

Re: [CB]CB drag and go

bunda1
Спасибо огромное:D.

Отсутствует

 

№5601-06-2016 21:08:58

citehala
Участник
 
Группа: Members
Зарегистрирован: 07-05-2015
Сообщений: 63
UA: Firefox 46.0

Re: [CB]CB drag and go

Всем привет ! Классная кнопка ! Я её немного модифицировал (операции с текстом) может кому понравится ;)

Работа кнопки
Ссылки:
Вверх (U) открыть в новой активной вкладке
Вниз (D) открыть в новой фоновой вкладке
Влево (L) сохранить с запросом
Вправо (R) сохранить в папку загрузки
Изображения:
Вверх (U) открыть в новой активной вкладке
Вниз (D) открыть в новой фоновой вкладке
Влево (L) сохранить с запросом
Вправо (R) сохранить в папку загрузки
Выделенный текст:
Вверх (U) поиск в новой активной вкладке (поисковик по умолчанию)
Вниз (D) поиск в новой фоновой вкладке (поисковик по умолчанию)
Влево (L) сохранить с запросом
Вправо (R) искать текст на текущей странице

Подсказка кнопки (скриншот) :whistle:
http://ipic.su/img/img7/fs/2016-06-01_203750.1464803104.png

Код кнопки и инициализация
Код кнопки:

Выделить код

Код:

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+_\-\.%=&amp;]*)?)?(#[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) искать текст на текущей странице";


Помогите пожалуйста с функцией "поиск похожих изображений", не удалось прикрутить.. :dumb:
(можно в личку, я изменю сообщение и объявлю благодарность)

Отредактировано citehala (01-06-2016 21:26:54)

Отсутствует

 

№5701-06-2016 22:05:53

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: [CB]CB drag and go

citehala
Похоже перестали вообще жесты на картинках работать. На них срабатывают те, что для ссылок заданы. Надо ждать, чтоб bunda1 поправил.

Отсутствует

 

№5802-06-2016 12:59:54

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 49.0

Re: [CB]CB drag and go

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");

и

Выделить код

Код:

            if ( link ) {

на

Выделить код

Код:

            if ( link && !img ) {

Тогда функции, заданные для картинок, заработают.


Это пока bunda1 не поправит. :)

Отредактировано turbot (02-06-2016 13:09:40)

Отсутствует

 

№5902-06-2016 14:25:10

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

turbot пишет:

citehala
Похоже перестали вообще жесты на картинках работать. На них срабатывают те, что для ссылок заданы. Надо ждать, чтоб bunda1 поправил.

Проблема в том что многие ссылки оформлены как изображения и их адреса не на изображения а на какие то страницы, ну и жесты в кнопке одни и те для ссылок и изображений. Наверно прикручу дополнительные жести к кнопке специально для изображений.

Отсутствует

 

№6007-07-2016 09:45:48

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]CB drag and go

bunda1
Тут в ночнушках допилили наконец 906420 – [DnD] dataTransfer.items undefined in Firefox (implement DataTransferItem and DataTransferItemList): Add support for images to DataTransfer. Может, посмотрите, что с этим можно сделать?

Отсутствует

 

№6107-07-2016 10:49:09

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

turbot пишет:

bunda1
Может, посмотрите, что с этим можно сделать?

Если я правильно понял о чём ты намекаешь, то у меня в планах добавить в кнопку дополнительные жесты и тогда можно будет для ссылок и изображений сделать разные жесты и проблем не будет.

Отсутствует

 

№6207-07-2016 11:00:53

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]CB drag and go

bunda1
Я намекаю, что вроде теперь можно более точно определить mime-тип перетаскиваемых данных, если я сам там понял правильно.

Отсутствует

 

№6307-07-2016 11:10:27

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

turbot пишет:

bunda1можно более точно определить mime-тип перетаскиваемых данных

И сейчас для кнопки CB drag and go проблем с этим вроде нет или я не прав?

Отсутствует

 

№6407-07-2016 11:33:10

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: [CB]CB drag and go

bunda1
Вообще, есть:
https://lh3.googleusercontent.com/-Wyg7TLFxfRI/V34TKFoghLI/AAAAAAAAdFM/CGGPnoQwEYI/s0/thumb_97d21e210fa7d6899e00c563dcca7305.jpg 
картинка/ссылка/ссылка с картинкой. Я себе кое-как поправил (но тоже не идеально), а без этого кнопка, в нынешнем виде, вообще не различала.

Отсутствует

 

№6507-07-2016 12:07:14

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

turbot пишет:

bunda1
Вообще, есть:

Спасибо.

Отсутствует

 

№6609-01-2017 21:08:53

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

Полностью переписал код CB drag and go. Теперь в кнопке можно использовать любые сложные жесты мыши, например: RLR - направо> налево>направо. Дополнительно, в подсказке кнопки отображаются все установленные жесты мыши, после изменения жестов соответственно меняется подсказка кнопки, а в сплывающей подсказке страницы отображается информация о текущем жесте. Кнопка не работает при включенном многопроцессном режиме (e10)!

Отсутствует

 

№6723-01-2017 23:42:27

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 145
UA: Firefox 50.0

Re: [CB]CB drag and go

bunda1 пишет:

Кнопка не работает при включенном многопроцессном режиме (e10)!

А в будущем эта кнопочка при включенном е10 заработает?

Отсутствует

 

№6824-01-2017 01:19:47

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

tom911 пишет:

А в будущем эта кнопочка при включенном е10 заработает?

Если я пойму как её заставить работать с е10.

Отсутствует

 

№6924-01-2017 18:16:10

tom911
Участник
 
Группа: Members
Зарегистрирован: 20-05-2011
Сообщений: 145
UA: Firefox 50.0

Re: [CB]CB drag and go

bunda1 пишет:

Если я пойму как её заставить работать с е10.

Я в вас не сомневаюсь:)

Отсутствует

 

№7012-02-2017 13:43:15

mahtanoronra
Участник
 
Группа: Members
Зарегистрирован: 08-03-2009
Сообщений: 57
UA: Firefox 38.0

Re: [CB]CB drag and go

пытался сдеалть
Выделенный текст:
Вверх (U) поиск в новой активной вкладке (поисковик по умолчанию)
Вниз (D) поиск в новой фоновой вкладке (поисковик по умолчанию)
в оригинале...не вышло. может кто подправит кнопку.
а то вот  именно этого ей не хватает..

Отсутствует

 

№7112-02-2017 13:56:23

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

mahtanoronra пишет:

Выделенный текст:
Вверх (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);
           }},

Отсутствует

 

№7212-03-2017 04:44:56

mahtanoronra
Участник
 
Группа: Members
Зарегистрирован: 08-03-2009
Сообщений: 57
UA: Firefox 52.0

Re: [CB]CB drag and go

на 52 esr кнопка не пашет

Отсутствует

 

№7315-03-2017 22:17:41

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

mahtanoronra пишет:

на 52 esr кнопка не пашет

А e10 включен?

Отсутствует

 

№7416-03-2017 03:02:22

mahtanoronra
Участник
 
Группа: Members
Зарегистрирован: 08-03-2009
Сообщений: 57
UA: Firefox 52.0

Re: [CB]CB drag and go

bunda1
да выключил все ок. а это в будем вообще возможно что с e10 будет работать?

Отсутствует

 

№7516-03-2017 13:43:26

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4590
UA: Firefox 24.0

Re: [CB]CB drag and go

mahtanoronra пишет:

bunda1
а это в будем вообще возможно что с e10 будет работать?

Но как бы решение есть но очень сложное и потому мне уже не хочется вникать в это, потому что завтра Mozilla опять что то сломает.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]