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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№862629-07-2015 16:58:27

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

Re: Custom Buttons

fokanik пишет

А для "vlc.exe" %1 ---> такое написание не работает, как быть?

Например, для Daum PotPlayer'а так:

Выделить код

Код:

process.run(false, [gContextMenu.getLinkURL(), '/add'], 2);

ищите в документации VLC параметры запуска командной строки и заменяйте "/add'" на нужную команду.

fokanik пишет

А еще как будет выглядеть команда для открытия адреса активной вкладки во внешней программе - в подмену этому:

https://forum.mozilla-russia.org/viewto … 64#p687264

Отсутствует

 

№862729-07-2015 17:51:49

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

turbot пишет

ищите в документации VLC параметры запуска командной строки и заменяйте "/add'" на нужную команду.

Выделить код

Код:

process.run(false, ["-AddToPlaylist", gContextMenu.getLinkURL()], 2);

Все получилось, спасибо!

Отсутствует

 

№862829-07-2015 19:04:29

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

jars пишет

Вот кнопка добавляющая к ссылкам подменю с прогами. LinkMenu. Тут мои проги, переделай на свои пути. это та кнопка сделанная некогда бритва_оккама , добавил иконку и иконки к прогам.

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

Выделить код

Код:

var icomnu = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4OK04ODj/ODg4/zg4OK0AAAAAODg4rTg4OP84ODj/ODg4rQAAAAA4ODitODg4/zg4OP84ODitAAAAAAAAAAA8PDz/PDw8/zw8PP88PDz/AAAAADw8PP88PDz/PDw8/zw8PP8AAAAAPDw8/zw8PP88PDz/PDw8/wAAAAAAAAAAQEBA/0BAQP9AQED/QEBA/wAAAABAQED/QUFB/0FBQf9BQUH/AAAAAEFBQf9BQUH/QUFB/0FBQf8AAAAAAAAAAEVFRa1FRUX/RUVF/0VFRa0AAAAARUVFrUVFRf9FRUX/RUVFrQAAAABFRUWtRUVF/0VFRf9FRUWtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5OrU1NTf9NTU3/Tk5OrQAAAABOTk6tTU1N/01NTf9OTk6tAAAAAE5OTq1NTU3/TU1N/05OTq0AAAAAAAAAAFJSUv9SUlL/UlJS/1JSUv8AAAAAUlJS/1JSUv9SUlL/UlJS/wAAAABSUlL/UlJS/1JSUv9SUlL/AAAAAAAAAABWVlb/VlZW/1ZWVv9WVlb/AAAAAFZWVv9WVlb/VlZW/1ZWVv8AAAAAVlZW/1ZWVv9WVlb/VlZW/wAAAAAAAAAAWlparVpaWv9aWlr/WlparQAAAABaWlqtWlpa/1paWv9aWlqtAAAAAFpaWq1aWlr/Wlpa/1paWq0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmKtYmJi/2JiYv9iYmKtAAAAAGJiYq1iYmL/YmJi/2JiYq0AAAAAYmJirWJiYv9iYmL/YmJirQAAAAAAAAAAZ2dn/2dnZ/9nZ2f/Z2dn/wAAAABnZ2f/Z2dn/2dnZ/9nZ2f/AAAAAGdnZ/9nZ2f/Z2dn/2dnZ/8AAAAAAAAAAGtra/9ra2v/a2tr/2tra/8AAAAAa2tr/2tra/9ra2v/a2tr/wAAAABra2v/a2tr/2tra/9ra2v/AAAAAAAAAABwcHCtcHBw/3BwcP9wcHCtAAAAAHBwcK1wcHD/cHBw/3BwcK0AAAAAcHBwrXBwcP9wcHD/cHBwrQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAIQhAACEIQAAhCEAAIQhAAD//wAAhCEAAIQhAACEIQAAhCEAAP//AACEIQAAhCEAAIQhAACEIQAA//8AAA=="; 
   var smplayicon = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRUVFyAAAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4er+ff2+39/f7JGREQ3wL6+27e2tvCjoKBeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+fn6a5uLf8/Po4v7l4d3+tra2/sbHx//V09P/sq+u/mNeXicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeXl53y8TA8ObQxP/Zy8H/hYB+/7a3t//arq7/797d/8zHx/60rq5+AAAAAAAAAAAAAAAAAAAAAAAAAABMTExRpJyY8sexov7ry7T/joyL/9XJyP/Qx8f/78vL//Li4v/l3t7/qqSknQAAAAAAAAAAAAAAAAAAAAAHBwc0Rzkz7MefiP7PrJT/2cOr/6Kio//15eT/2s3N//fn5//48/P/6eLi/6mjo6IAAAAAAAAAAAAAAAAAAAAkMCMd6Yc6Df7Wn3r/6L+U/868nv+blpT/vrKx/8bCwv/otrb/7tjY/93X1v+4sbCSAAAAAAAAAAAAAAAlFwsGnVopDf6zUxH/4at1/92/jf+no5z/S5Ll/2+Suf+8vLv/yrS0//Xs7f/EwcD/xL6+fgAAAAAAAAAoDgYCiXw3Ef6EPg//klYe/9uydP97dGj/W327/y6B/v9dpfn/2NXS/9XV1f+6ubn/trKy+MjIx6EAAAAqCwQBg3Y0EfWuURX/znUm/6B0Mf9RRjn/cnBu/3SOyv8kae7/nazE/8vLy/+Qj4//k5KS/0FBQfLFxcWNAAAAWlAkC+irUBX/y3Ej/96gRf9aTTX/Tk5O/7CwsP/d3d3/vL3A/6enpv/u7u7/enp6/zMzM/9JSUn3xsbGkgAAAAAEAQB8jU0Y/uWjRv5lVTn/WFhY/56env8wMDD/Pj4+/8fHx/+np6f/dXV1/7+/v/+3t7f/2NjY/qKiomIAAAAAAAAAAAAAAGQ8LhfQQEBA/piYmP9qamr/NTU1/zU1Nf+IiIj/Li4u/zU1Nf9MTEz/8vLy/9PT08oAAAAAAAAAAAAAAAAAAAAAAQEBRY6OjoJ1dXXleHh4/kZGRv9ZWVn/vb29/0RERP81NTX/aGho/uHh4dfHx8ckAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKChHFxcdSXl5f+rKys/8fHx//AwMD+iIiI/p6enqV9fX0ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ0MsgICAh4yMjKSEhISlfX19jURERDwAAAAAAAAAAAAAAAAAAAAA/7MAAP8BAAD+AAAA/AAAAPgAAADwAAAA4AAAAMAAAACAAAAAAAAAAAAAAACAAAAAwAEAAOABAAD4AwAA/A8AAA==";
   var aimpicon = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRkZQBgYGJsYGBjPGRgW5RkYFuUYGBjPFxcXmxUVFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGRkRGBkZmhkZF/4gFhH/IRUW/yAcJP8gHCT/IRUW/yofGv8pKSf+GhsbmhkZGREAAAAAAAAAAAAAAAAcHBwRGRkavR4aFv8jGx3/FUdo/weBsv8DnNL/A5zT/weBsv8fUXH/PjY4/zczL/8bGxy9GxsbEQAAAAAAAAAAGxsbmyAcGP8gIiz/Bnm0/wDA//8Axv//AMH//wDB//8Axv//AMD//wZ/uf80N0H/JSAd/xoaGpsAAAAAHh4ePh8eHP0kHSD/Cm2o/wHA//8AuP//ALT//wCx//8Ar///ALD//wOv+v8NruT/DGqh/yQfIv8fHRz9HR4ePh4eHpsnHhf/D0Jt/xSZ2v9DYW//Knme/xSRzf8Eo/X/AK7//wCz//8rbYz/RjUu/w6S0P8PRnH/Jx0X/x4eHpsiISDQJx0c/wRosv8Arf//M195/043Kv9FQD3/PERH/ylYcP8Wdaf/I2yX/yJtnP8AqP//BGq0/yccG/8gIB/QIyIf5SMgJv8AdtH/AJ7//wmJ4P82ODn/NTk8/yphi/8qXoj/LFt//yFnlv8PfcT/Apj4/wB60v8pJy3/Kyoo5S8uK+UqJy7/AGvP/wCP//8Akf//ImSY/1BANv8bjtj/IZzo/3SAi/80lc3/AaT9/wCn/v8AfM//Mi83/zc2NOVEREPQUkdH/wBfq/8Aqv//AKL//w2p+v9zgYf/ZXd//2F0ff9qcHL/C6Tx/wCp//8As///AGmu/0E1Nf82NTXQMzMznGphW/8PP2b/AL7//wCv//8Asv//MJ7Q/2xdVv9mVU7/KpXE/wCz//8Ar///ALP//xE/af9TSkT/LS4umyQkJD5kY2H+XFNX/wByqf8A0///ALj//wW5//9XdoT/Tmt2/wS5/v8At///AMb//wBqrf9EO0D/T09N/SYmJj4AAAAANDQ1nJOQjP9NTFf/AHSl/wDM//8A0f//JLrp/yS45v8Azf//AMD//wBuqv83OEL/ZmJf/zAwMZsAAAAAAAAAACQkJBFDQ0S9mZWS/25kaP8cTm7/AHmn/wCWzP8Ak87/AHSo/xVGav9RSU3/cGxo/zk6Or0oKCgRAAAAAAAAAAAAAAAAJCQkETk5OZuBgH/+m5GM/4R1eP9dWWL/Uk9X/2VYWv93bmn/ZmVj/jU2NpooKCgRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkQEFBQZtjY2LPaGZk5WRiYOVVVVTPPDw9mykpKUAAAAAAAAAAAAAAAAAAAAAA8A8AAMADAACAAQAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAIABAADAAwAA8A8AAA==";
   var wgetico = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFBQUFxMTE2kWFhZwFhYWcBYWFnAWFhZwFhYWcBYWFnAWFhZwFhYWcBYWFnAWFhZwFhYWcBMTE3ETExNQFBQUADc3N843Nzf/LCws3S0tLeEtLS3hLS0t4S0tLeEtLS3hLS0t4S0tLeEtLS3hLS0t4SwsLN84ODjsOTk5/zY2Nq00NDT/FBQURgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMACYmJqw0NDT/NTU1/wgICC4AAAAAAAAAAAAAAAABAQEFAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAgICCQAAAAAdHR2VNzc3/zU1Nf8JCQkxBgYGBgwMDEIGBgYSAAAAAAAAAAAICAgoCwsLOAoKCjQLCws5BAQEEwAAAAAAAAAAHx8fmzY2Nv81NTX/CAgILwsLCwk3NzfWNDQ05wsLCx0AAAAAKSkpxTU1Nf8xMTH4Nzc3/xQUFF0AAAAAAAAAAB4eHpo2Njb/NTU1/woKCjQAAAAACQkJAjExMcs1NTXnDg4OGQAAAAICAgIKAQEBCAEBAQkAAAADAAAABAAAAAAeHh6aNjY2/zU1Nf8KCgo0AAAAABMTEyc0NDTjLi4uwAgICA0AAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQUAAAAAHh4emjY2Nv82Njb/CAgIMBAQEBU2NjbhLS0twwUFBQUAAAAAAQEBBQAAAAMAAAADAAAABAAAAAMBAQEHAAAAAB8fH5s2Njb/NTU1/wcHBycAAAAAAQEBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR2VNzc3/zQ0NP8SEhJbBwcHJwkJCS8KCgozCgoKNAoKCjIKCgoyCgoKMgoKCjIKCgoyCgoKMgoKCjYGBgYiIiIirjY2Nv8yMjL+NDQ0/zU1Nf80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zMzM/8yMjL/NTU1+TQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP81NTX/NTU18CgoKFkoKCjOKCgoyygoKMsoKCjMKCgozCgoKMwoKCjMKCgozCgoKMwoKCjMKCgozCgoKMooKCjQKCgorygoKC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAABAAAAAAAAP/wAADn0AAAGDAAAAgwAACAEAAAh9AAAAgQAAC/8AAAAAAAAAAAAAAAAAAAAAAAA//8AAA=="; 
   var ummyico = "data:image/vnd.microsoft.icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AJZJNACVtTYBltY0AJXlNQGW8jQBlvgyAJH7MwCS/DQAlvc0AJXxNQGW5jUAltU2AZe1NgOWSwAAAAAyBJtCMgOb+zIDnPwyApv8MgOc/DICm/wvAJX8JwB5/ScAef0vAJX8MgKb/DICm/syApv8MgKb+zICm/s1BJpEMAShqy8EofwvBKH8LwSh/C8EofwuAp78JgKE/WZakv5mWpL+JgKE/S4CnvwvBKH8LwSh/C8EofwvBKH8MASjqysGp9ksBqf8LAan/CwGp/0rBKX8JwSU/UMue/7Fz9n+xc/Z/kMue/4mBJT9KwOl/CsGpv0sBaf8LAWn/CsGp9koB63wKAet/CgHrfwoB6z9JwWm/CoPfv66vtH/ztng/83Z3/+6vtH/Kg9//ScFpf0oB638KAes/SgHrP0pB6zxJwmz+iYJsv0mCbL9Jgmy/SUIsf3S0Ov+9vj5/9bf5P/W4OX/9vj5/9LQ6/4kB7H9JQiy/SUIsv0lCLL9Jwmz+iMKufojC7j+Iwu4/iIKuP0jC7j+Igq4/SAIqv3c5Oj/3OTo/yEIqv0jCrj9Iwu4/iMKuP0jC7j+Iwu4/iMKufohDb7yHwu9/R8Lvf0gDL79Hwu9/SAMvv0eCrD94Ofr/9/m6/8eCrD+IAy+/h8Lvf0gDL7+Hwu9/R8Lvf0hDb7yHQ7E2x0NxP4dDcT+HQ7E/h0NxP4dDsT+Gwy2/ufs7//n7O//Gwu2/h0NxP4dDcT+HQ3E/h0NxP4dDcT+HQ7E2xsQyq0aD8n/Gg/J/xoPyv4aD8n/Gg/K/hkNyP78/f3//P39/xkNyP4aD8r+Gg7J/hoPyv4aDsn+Gg7J/hsQyq0aE9JEFxDQ/hcQ0P4XEM//FxDQ/hcQz/8XEM//GBHP/xcQz/8YEc//GBHP/xgRz/8YEc//GBHP/xgR0P0XE9FCAAAAABgU1ksWEtW3FBPW2BYT1egVE9X0FBLV+hQS1v4UEtb+FBLV+hUT1fQVE9XoFBPW2BUS1bcVFdZKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEGAAaxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQYABrEH//6xB//+sQQ==";
   var nitroico = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vAAU/7wAhv+8ANP/vAD6/7wA9P+7AM79vQSD+b8MFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vABU/74F8v/YV///7pv///i2///5sf//7pL/+9lU//TBGPLtwh1TAAAAAAAAAAAAAAAAAAAAAAAAAAD/uwBT/8MU/v/wov///dX///7s////+f////j///7o///8x//88JT/6sw3/t/JNVMAAAAAAAAAAAAAAAD/vAAW/70F8f/wov///uD////8/////v///////////////v////v///3X//Twlv/ZzUXx0M9PGAAAAAAAAAAA/7wAgv/YVv///dT////8//aaAP/2mgD////////////+9OP/+btU//7+9v/5+cT/3uJ+/8fSXocAAAAAAAAAAP+8AND/7Zf///7s/////v/2mgD/9poA///9+//70or/9p8M//aaAP/9/vD/+f3h/+Dwqf++1W3kt9h6AwAAAAD/vAD4//q4////+P//////9poA//aaAP/4qyr/9poA//aaAP/2mgD//P7v//j+7v/Z98H/t9p//67biEgAAAAA/7wA+P/6s/////j///////aaAP/2mgD/9poA//iyO//2mgD/9poA//n+8P/z/u7/1/za/7Himf+m3pWnAAAAAP68AdD+7o////7o/////v/2mgD/96ES//zYmf/9/vD/9poA//aaAP/0/u//7v7v/9396v+p7bn/n+Gh95nkrBH6vQiC+dlV///8xf////v/+b5c//325P/9/vH//P7w//aaAP/2mgD/7v7u/9n95v/U/e3/qvng9ZnjrNqT5bZo9cARFfDDHPH78JX//v3X//7+9//9/vH//P7x//n+8P/0/u//7v7u/+j+8f/i/vP/o/vk/5T76f+D9+U7jee+agAAAADpxCVT5s09/vHwlP/6+sn/+v3l//n+7//0/u//6f3q/9T85P/i/vL/4/73/7798v+B++7/dfvzhgAAAAAAAAAAAAAAANrLPVPT0E3w2+SF/97xqv/b+cf/2vzc/9796f+z+97/ovvj/7z98v/b/vr/hPv0/2z7+NoAAAAAAAAAAAAAAAAAAAAAy9FZFMLUZo261nTls9qD/67joP+o777/nPnd+o776P+B++//gfv0/4z8+v9m+/v/afv9MgAAAAAAAAAAAAAAAAAAAAAAAAAAsdqCA6rcjkqj35qqnOKl+JbksPuG89pddfv0jWz7+OBm+/z/aPv9/4D7/YYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJfksBKR5rpsjejBjYnpyAFm+/sBa/v9NoH7/YmT+/254B8AAMAPAACABwAAAAMAAAADAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAACAAQAAwAEAAOAAAAD4AAAA/wAAAA==";
   var ummyDlico = "data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAJ6ACoPfgBDLnsAJwOEACsQgAAnBZQAKAWUADUDkwA1BJIAMQOWADAEnwA0BJwAOQeYADoImQA/DZoAHgqwABsLtgAbDLYAKAamACwGpgAuB6gAIQmqAC4IqAApCKwAMQaiACYJsQArDbQAIwu4ACQLuAAnDroAIAy9ADQUsABIGp8ASBmgAFYppgBKK7QAZlqSAG5KswBwSrUAdFa/AB0NxAAZDskAFxDPABgRzwAXENAAFBLWABkS0AAYFtUAHx3WACwZwQA8MMwAKijYADc33AB0VsEAZFzbAFdU4AC6vtEAxc/ZAM3Z3wDO2eAA1t/kANLQ6wDW4OUA3eTpAODn6wDn7O8A9vj5APz9/QAAsDYAAM9AAADwSgAR/1sAMf9xAFH/hwBx/50Akf+yALH/yQDR/98A////AAAAAAACLwAABFAAAAZwAAAIkAAACrAAAAvPAAAO8AAAIP8SAD3/MQBb/1EAef9xAJj/kQC1/7EA1P/RAP///wAAAAAAFC8AACJQAAAwcAAAPZAAAEywAABZzwAAZ/AAAHj/EQCK/zEAnP9RAK7/cQDA/5EA0v+xAOT/0QD///8AAAAAACYvAABAUAAAWnAAAHSQAACOsAAAqc8AAMLwAADR/xEA2P8xAN7/UQDj/3EA6f+RAO//sQD2/9EA////AAAAAAAvJgAAUEEAAHBbAACQdAAAsI4AAM+pAADwwwAA/9IRAP/YMQD/3VEA/+RxAP/qkQD/8LEA//bRAP///wAAAAAALxQAAFAiAABwMAAAkD4AALBNAADPWwAA8GkAAP95EQD/ijEA/51RAP+vcQD/wZEA/9KxAP/l0QD///8AAAAAAC8DAABQBAAAcAYAAJAJAACwCgAAzwwAAPAOAAD/IBIA/z4xAP9cUQD/enEA/5eRAP+2sQD/1NEA////AAAAAAAvAA4AUAAXAHAAIQCQACsAsAA2AM8AQADwAEkA/xFaAP8xcAD/UYYA/3GcAP+RsgD/scgA/9HfAP///wAAAAAALwAgAFAANgBwAEwAkABiALAAeADPAI4A8ACkAP8RswD/Mb4A/1HHAP9x0QD/kdwA/7HlAP/R8AD///8AAAAAACwALwBLAFAAaQBwAIcAkAClALAAxADPAOEA8ADwEf8A8jH/APRR/wD2cf8A95H/APmx/wD70f8A////AAAAAAAbAC8ALQBQAD8AcABSAJAAYwCwAHYAzwCIAPAAmRH/AKYx/wC0Uf8AwnH/AM+R/wDcsf8A69H/AP///wAAAAAACAAvAA4AUAAVAHAAGwCQACEAsAAmAM8ALADwAD4R/wBYMf8AcVH/AIxx/wCmkf8Av7H/ANrR/wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYjIQ8NCQgODyIjJwAAAAwMDAwMCgEBCgwMDAwMACgZGRkZCwQlJQQLGRkZGTYkFxcXFQcDOjoDBhQVFRUkIBgYGBMCOTw7OQUTGBgYIBsaGhsaPkM/P0M+GhoaGhseHR0cHh0WQEAWHR0dHBweMh8fHx8fEEFBEB8fHx8fMjMpKSkpKRJCQhEpKSkpKTM3KioqKioqREQqKioqKio3AC0tKy0rKywrLCwsLCwvAAAAODU0MTAuLjAxNDU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAAwAMAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAADAAwAA//8AAP//AAA=";
   var domHVico = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHt7e0B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAe3t7gHt7e4B7e3uAg39/gKVKGECUUC//jkgn/45IJ/+QSin/kEop/5BKKf+QSin/kEop/5BKKf+QSin/kEop/45IJ/+OSCf/kEwr/2xoZv+1a0KA/f39//v7+//7+/v//f39//n5+f/azcP/zbGc/8Gsnv/U0tL//f39//v7+//9/f3/+/v7/+LJvf9qZmL/tWc1gP39/f/7+/v//f39//f08v/JkFr/tVQk/6ZWL/+9VDP/rFY3/6SQiv/5+fn/+/v7//39/f/ix7n/amZi/7VrMYD9/f3//f39//v7+//Ypnf/oj0C/6xIAP8zYAT/oj8A/6Q/Cv+cVjf/v7m1//39/f/9/f3/5Me3/2pmYv/Bby2A/f39//v7+//9/f3/v2Yc/8NeAP+obwD/EH8A/6RoAP+JVgD/VGAl/5h9av/9/f3/+/v7/+jLtf9qZmL/xnMpgP39/f/9/f3//f39/8dnCP+Ohgb/YpwO/9aWCv/ogwD/JXsA/yBkBP+DdUn//f39//v7+//oy7X/amZi/8ZzKYD9/f3//f39//v7+//YjCX/JbU3/zPHXP+30Gb//asm/3OIAP8EcwD/mJZq//v7+//9/f3/6Muz/2pmYv/WeyGA/f39//v7+//9/f3/t9yg/znJYP+v6qD/w/Gz/56/TP/JiQL/Sn0I/+Te0//9/f3/+/v7/+7Ssf9qZmL/1nshgPv7+//9/f3/+/v7//39/f+94qT/q9yJ/4veh/8kv0f/3pAc/+rUsf/7+/v//f39//39/f/s0K//bmhk/9p/IIDs6uD/7Ojc/+zo3P/q5tr/7Ojc/+rkx//a1qL/1tKi/+ji0f/o5Nj/6uba/+jk2P/u6Nb/5MGW/2poZv+5XgCAuVgA/7VWAP+1VgD/t1gA/7dYAP+1VgD/t1YA/7VWAP+1VgD/vWIO/79pGP/MdyX/e1ZQ/6hcIf9zcHD/znMIQN6KK//mkCr/5o0m/+SLIv/kiSD/5owg/+SJIP/kiSD/5Ikg/+SJGv/kiR7/5osc/9qKKv/eiSn/paWcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAA==";
   var aria2ico = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABJUlEQVQ4y7WSPW7CQBBGn1GKpEiZ5A6QK6TlBFCmYalwhTZI7pb0sdzRuXLJBZCLNOlyECPRJoU/CckpWEfGgSIgRhppd37eftoZONOCY4k8z6vmvd/vB1zCjlKXy+WeguFweEEFaZreAZs6aIwJ0jTdU3Ag9mCM2VwBSOoB35PJ5LbOSvrzmjEmAFgsFl/AI/BeA7pAAZAkyRtg24AkSSognk6nL5KKNqAHrP15BtwDzy0BGTDzNWsPoFMDPJUoiipJI0krSXhfSRpFUVT5+kLSHqBbAwCcc1tJA9+YSxo457aN/ym86t0UrLVVS+5rHMfzZsBaOwdcq+6mA1CWZdtdGIa/gDAM52VZugN1OwXj8bg6cY+u6yl8AE//bP7Mskxnr/IPLt++0wEEu3MAAAAASUVORK5CYII=";

(function openLinkAsMenu(){

    const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

    var contextMenu = document.getElementById("contentAreaContextMenu");
    var separator = document.getElementById("context-bookmarklink"); 
    var eventTarget = null;
    
    var menu = document.createElementNS(kXULNS, "menu");
    menu.id = "openLinkAsMenu";
    menu.setAttribute("label", "Открыть в ...");
    menu.setAttribute("class", "menu-iconic");
    menu.setAttribute("image", icomnu);
    menu.hidden = true;
    
    contextMenu.insertBefore(menu, document.getElementById("context-sep-open"));
    var menuPopup = document.createElementNS(kXULNS, "menupopup");
    menu.appendChild(menuPopup);
       
      var lst = [

        {          label:"SMplayer",             command:smplayOpen, image:smplayicon        },
        {          label:"AIMP2 play",          command:aimp2play, image:aimpicon        },
        {          label:"Открыть в MxNitro (Blink)",          command:mxNitroUrl, image:nitroico        },
        {          label:"UmmyDownloader (ютуб)",          command:ummyDownloader, image:ummyDlico        },
        {          label:"Wget -x [Url download]",             command:wgeturl, image:wgetico         },
        {          label:"Wget -x -i [list download]",          command:wgetlist, image:wgetico        },
        {          label:"Aria2 download",          command:aria2c, image:aria2ico        },
        {          label:"DomainHosting View",          command:domainHostView, image:domHVico         }
         
        ];
    
     for(var i = 0, m; m = lst[i]; i++){
        var menuItem = document.createElementNS(kXULNS, "menuitem");
        menuItem.setAttribute("label", m.label);
        menuItem.setAttribute("class", "menuitem-iconic");     // +1
        menuItem.setAttribute("image", m.image);          // +2
        menuItem.setAttribute("type", "m.radio");
        menuItem.addEventListener("command", m.command, false);
        menuItem.id = "context-Demo-Menu-" + m.label.toString();
        menuPopup.appendChild(menuItem);
        
    }
    
    contextMenu.addEventListener("popupshowing", setMenuDisplay, false);

    function setMenuDisplay(aEvent) {
                 document.getElementById("openLinkAsMenu").hidden = false;
         }
      
       function setMenuDisplay(aEvent) {
                 if (gContextMenu.onLink) {
                 document.getElementById("openLinkAsMenu").hidden = false;
        }
                 else
                 document.getElementById("openLinkAsMenu").hidden = true;
    }


//------------------------    
    
function smplayOpen(){
 
        var urllink=gContextMenu.linkURL
        var pleerpath="C:\\0l0\\MyPROG\\FM\\TC\\SOFT\\MEDIA\\SMplayer\\smplayer.exe"

        startProcess(pleerpath,[urllink]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        
     }
     
 //-----------------------------------------------------------------------------
    function aimp2play(){
        var urllink=gContextMenu.linkURL
        var pleerpath="C:\\0l0\\TC\\SOFT\\MEDIA\\AIMP\\AIMP2.exe" 

        startProcess(pleerpath,[urllink]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        }
// ---------------------------------------------------------------------------------

    function wgeturl(){
        var urllink=gContextMenu.linkURL
        var wget= "c:\\Program Files\\UnixUtils\\bin\\wget.exe"
        var param="-с -nc"
//        alert(pleerpath);
        
        startProcess(wget,param,[urllink]);

        function startProcess(path, param, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);

 file.initWithPath(path); 

    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        }



//--------------------------------------------------------------------------------
        
    function wgetlist(){
        var urllink=gContextMenu.linkURL
        var pleerpath="c:\\Program Files\\UnixUtils\\bin\\wget.exe"
        var param="-xc -B -i"
        
        startProcess(pleerpath,param,[urllink]);

        function startProcess(path, param, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        }


// ---------------------------------------------------------------------------------

function mxNitroUrl() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("MxNitro");
      file.append("MxNitro.exe");

  startProcess(file.path,[url]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);

    file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
              
       process.init(file);
       process.run(false, args, args.length);
                             } else custombuttons. alertBox ("Программа не найдена. Ошибка в пути ☭", file.path); 

     };

}

// ---------------------------------------------------------------------------------

function ummyDownloader() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("UmmyVideoDownloader");
      file.append("UmmyVideoDownloader.exe");
      
  startProcess(file.path,[url]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);

    file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
              
       process.init(file);
       process.run(false, args, args.length);
                             } else custombuttons. alertBox ("Программа не найдена. Ошибка в пути ☭", file.path); 

      };

}

// --------------------------------------------------------------------------------------------------------

function aria2c() {

    var url = gContextMenu.linkURL;
        
    var file= Components.classes["@mozilla.org/file/directory_service;1"].
      getService(Components.interfaces.nsIProperties).
      get("ProfD", Components.interfaces.nsIFile);
      file.append("Soft");
      file.append("Tools");
      file.append("aria2.exe");
      
  startProcess(file.path,[url]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);

    file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
              
       process.init(file);
       process.run(false, args, args.length);
                             } else custombuttons. alertBox ("Программа не найдена. Ошибка в пути ☭", file.path); 

      };

}



// --------------------------------------------------------------------------------------------------------
function domainHostView() {

 var url =  gContextMenu.linkURL;
 var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
   file.initWithPath(file.path + "\\Soft\\Tools\\DomainHostingView.exe");

   var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
   process.init(file);
   process.run(false, ["/StartDomain", url], 2);

}

// ---------------------------------------------------------------------------------------------

// ================ end ================================
        
})();


Как в этом коде smplayer.exe подсунуть параметр "-add-to-playlist", тыкал-мыкал не получается, помогите? А браузер нужно перезапускать после правки кода, может из-за этого?

А все, разобрался:

Выделить код

Код:

function smplayOpen(){
 
        var urllink=gContextMenu.linkURL
        var pleerpath="C:\\Program Files\\SMPlayer\\smplayer.exe"
        var param="-add-to-playlist"
        
        startProcess(pleerpath,[param,urllink]);

        function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("URL не найден", path); 
};
        
     }

Отредактировано fokanik (29-07-2015 19:13:59)

Отсутствует

 

№862929-07-2015 19:37:59

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Какой можно использовать внешний редактор для правки кода, посоветуйте?

Отсутствует

 

№863029-07-2015 19:52:35

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

Re: Custom Buttons

fokanik
Поставьте кнопку Custom_Buttons/CB_Source_Editor at master · Infocatcher/Custom_Buttons · GitHub:
thumb.png
и со встроенным будет неплохо (цвета - в зависимости от значения devtools.theme (dark/light)).

Отсутствует

 

№863129-07-2015 20:08:20

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

turbot пишет

Поставьте кнопку Custom_Buttons/CB_Source_Editor at master · Infocatcher/Custom_Buttons · GitHub:
и со встроенным будет неплохо (цвета - в зависимости от значения devtools.theme (dark/light)).

Завтра испытаю, а на сегодня хватит - всем спасибо за помощь.

------------------------------------------------------------------------------------------------------------------------------------------------------

Супер, спасибо!

Отредактировано fokanik (30-07-2015 16:12:15)

Отсутствует

 

№863230-07-2015 16:14:40

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Объясните еще, чем отличается код от инициализации? Вот этот код, например, работает отдельно как в коде, так и в инициализации:

Выделить код

Код:

this.setAttribute("context", "");
this.onclick = e => {
    var tab = gBrowser.selectedTab, pinned = tab.pinned;
    if (pinned && !e.button) return;
    if (e.button == 2 && (e.ctrlKey || e.shiftKey)) {
        gShowPopup(this); return;
    }
    var tabs = gBrowser.visibleTabs.filter(tab => !tab.pinned);
    if (!pinned) {
        var index = tabs.indexOf(tab);
        switch(e.button) {
            case 0: tabs = tabs.slice(0, index); break;
            case 1: tabs.splice(index, 1); break;
            case 2: tabs = tabs.slice(index + 1);
        }
    }
    for(var tab of tabs) gBrowser.removeTab(tab, {animate: false, byMouse: false});
}

Отредактировано fokanik (30-07-2015 16:20:43)

Отсутствует

 

№863330-07-2015 16:29:05

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

Re: Custom Buttons

Код из секции "код" - выполняется только при нажатии кнопки. В "инициализация" - при запуске браузера.

Отсутствует

 

№863430-07-2015 16:42:47

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

А если я кнопку сделал, теперь можно ее как-то вытащить готовую из браузера - сохранить, где искать?

Отсутствует

 

№863530-07-2015 16:50:30

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

Re: Custom Buttons

В профиле, в папке "custombuttons". Либо Button Archive.

Отсутствует

 

№863630-07-2015 17:26:10

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

0e0f5ccfe7c7.jpg А иконки какого размера должны быть, что-то они у меня большеватыми получились?

Отсутствует

 

№863730-07-2015 17:36:34

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

Re: Custom Buttons

В меню 16x16px в панели навигации 24x24px(или меньше, теже 16x16)

Отсутствует

 

№863830-07-2015 19:13:51

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

А как запретить меню у кнопки, а то залезут ведь :)

Отсутствует

 

№863930-07-2015 20:38:10

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

Re: Custom Buttons

Coroner пишет

Подскажите пожалуйста : какой код требуется вставить в кнопку для обновления "URL автоматической настройки сервиса прокси" аналогично нажатию кнопки "обновить" в "параметрах соединения", как это сделано, допустим, в дополнении Reload PAC button ( https://addons.mozilla.org/ru/firefox/a … pac-button ) ?

Может:

Выделить код

Код:

Cu.import("resource://gre/modules/Services.jsm");
Cc["@mozilla.org/network/protocol-proxy-service;1"].getService().reloadPAC();

Добавлено 30-07-2015 20:42:24

fokanik пишет

А как запретить меню у кнопки, а то залезут ведь :)

В userChrome.css

Выделить код

Код:

#custombuttons-contextpopup { display: none !important; }

Рестарт.

Отредактировано bunda1 (30-07-2015 20:42:24)

Отсутствует

 

№864030-07-2015 20:53:42

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

bunda1 пишет
Выделить код

Код:

#custombuttons-contextpopup { display: none !important; }
Выделить код

Код:

this.setAttribute("context", "");

Уже нашел.

Отсутствует

 

№864130-07-2015 21:59:51

amid525
Участник
 
Группа: Members
Откуда: Беларусь
Зарегистрирован: 19-08-2014
Сообщений: 336
UA: Firefox 29.0

Re: Custom Buttons

Имеется ли кнопка, заменяющее расширение Pure URL ?

Отсутствует

 

№864230-07-2015 23:52:37

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

Re: Custom Buttons

amid525
Нет. И там слииишком много кода (да еще и использующего addon-sdk), чтобы кто-то взялся его переделывать под CB (разве что сам автор - VEG). Да и смысл? Аддон очень легкий.

Отсутствует

 

№864331-07-2015 13:23:35

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Выделить код

Код:

(()=> {
   var menuitem = document.createElement("menuitem");
   var contextMenu = document.getElementById("contentAreaContextMenu");

   menuitem.id = "open-in";
   menuitem.setAttribute("label", "Отправить в Download Master"); //видимое название, меняйте на свое
   menuitem.setAttribute("class", "menuitem-iconic");
// иконка для пукта контекстного меню в base64, меняйте на свою -->
   menuitem.setAttribute("image", "data:image/ico;base64,AAABAAEAGDAAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZUAAEAAAAfAAEAHx03AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlkAAQAVACs+LwCtAAMAgAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAGoNDAL3/oCCzPjwAtgAAAIAAGwAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAig0YAtf+vL7T/7lCx/8oxpyU0AL4AAAByAC0AHZh6BQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFHAAhTNACe/5ogzP/YQb//xyj//9Q05/+9Ja4BHQC5AAAAYwAqABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzoABjwsAIP9hBDe/9tBxf/JLPv/xyz//8cs///WMu7tnhOvAA0AswAAAFcKMQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiNwANHSAAd/OACuP/40bE/8cq///HLP//yS3//8kt///HLf//0THv85ENxAAVALsAAABLACIADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGABb7XgA2P/JKtj/xyL//8ks/f/JLf3/yS3//8kt/f/HKv3/xyD//8Qf7sJzAMsACAChAAAAOzxGAAYAAAAAAAAAAAAAAABBUVgCABUtAgAVKgIbLTwBAAAAAGNGABnrgBfw//+6+///t/7/9Zj//8Yk/f/HLP3/yi3//84t/f/KJf3//8H///+3////v/eiSwDeAAoAVAANAA8AAAAAYmVgBAYdMSwACidXAA0oXgANKF4ACihQAAAnIpVMC4C1WAChokYAnpU/AKmVNwDL+mIA//9oAP//agD//38A//+LAP+iPADvfTwArcReAJvtehCiXUYAUAAAAAAAAAAAVlhRSEREObQ/QzzYPkQ82kNGP9svNjTGAAUifAAAJUUAACAkAAUtQAAaVH8DKlHJekk6/3c/L/18Pij/pUEG/d4/AP9eDQDhAAAATgAAAAAAAAAAAAAAAAAAAABqa2ACUE48l5WQd7qwrJXzqKKG/7Snhv8KEhr8RmJ96xM5XsIAIk6uGlGO2lGO0fesydj/ssnG/6PJ2f+Ewvj/VJPg/zpgmP8kQVj6ABISnAASIiIAAAAAAAAAAAAAAABta14dYFlJpbW1pZQ6OjL4hIh9/qKjmv2Am6L/eK/u/id12/9vre3/kdT//8fm8/+w1vD9m8fw/aPE3P29ysf/WJ3w/Sd9/f9Olv/fOXe/4wAOMl4AAAAAAAAAAAAAAABvb2Aob2pUqKqjibJ1cFv/lY53/X2Bd/211N7/NoHr/UGQ//2V1v//js7//YTH//93vP/9eLz//nq9//19wf//UZb7/S967f5Jk//uRojc0gAgR4UFGzQIAAAAAAAAAABycGMud3BZr6qjidyspY3/r6eI/Wt3cP211OX/N4Tt/Wut//14uf//d7f//Xy6//99vf/9gb///YTB//2Jx///Zqj//Shw3v4sdeD5OX/bvidiosIFGjIOAAAAAAAAAAB4d2gwgHpjw62njeqloIb/raKG/2p1b//H7fv/Knzt/2+0//96uv//fLr//329//+Ewf//iMb//4nH//+Oyv//b7D//zF87f8+ifb/TJP2xSpmra4AGDQRAAAAAAAAAAB/fWoxgHhi1Kylje6looj/qKCD/X2JhP3Z/f//MoDu/Xy6//19vf//gL///YbH//+Lx//9iMf//YnG//2W0f//fLf//SVw4f06g+n/RInmxR9Wm5YAGjceAAAAAAAAAACAfWs1fXhi2Kylie6loIT/pZ6B/ZiekP3o////W6D2/YbH//2Nyv//kM7//ZrT//+d1P/9oNj//aXZ//2v4///c7D//SRw2/1Wnfr/Zaz/xDJ1xLEAGDQaAAAAAAAAAACAfW0qb2hT1qijjveqpY3/rKOI/3x/cP/r////TJX1/3y9//+V0///ltH//5XR//+d0///otn//6fb//+q3v//Y6P9/z+L8/9Qlvj/RIvpxCBbo5UBGzcYAAAAAAAAAACDf2sea2hW0Lq/t/+/xsH/vb21/ZabkP3O6ej/b8z//XXO//288///xPj//cf6//+v5v/9quD//azj//216f//Zar//TqD4/5MkPD4UJXwsCdlsKABGzcWAAAAAAAAAACBgW0HVFFBnrW5sP/Hzsn/xszH/rWwnf6vydH/hLXw/xNZsv99ufv/uvP//ub////m///90////c////3t////i+n//Xze//4/htz3LGu11iVgpZ8AFS8EAAAAAAAAAAAAAAAAdXBeZXNrVPOBfGD3gHpe9ouAZvgyMiTpf5aex1Z3kDwva6qrS4jM9dT///9vo9v/NGun/2J/kf9TeJH/SW2R/0tqhv9oc33/VJjY/iVdllEAAAAAAAAAAAAAAAAAAAAAhoZ3FHByZlhrcmtia3NvYmt1cmR6iY1EAAAAAAAAAACQtdYFMWWeY1SY2L1JcqX/x6Jr/v/6ff3/4Vj//+FG/f/YKP96RADmAExqd2uVxA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+w2xQyQ0xo/4EA9/aNIP74hhX/+oYQ/f+EDf+GRgCDA0s/AwAAAAAAAAAAAAAAAAAAAAD//D////g////4H///8Af//+AH///AA///gAH//4AA/+EAAP+AAAH/gAAP/wAAB/8AAAf/AAAD/wAAA/8AAAP/AAAD/wAAA/8AAAP/AAAD/wAAA/+AAAf/gYAH///gD/8=");
   document.getElementById("context-sep-open").parentNode.insertBefore( menuitem, document.getElementById("context-sep-open") );

   addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu );
   addDestructor( ()=> contextMenu.removeChild(menuitem) );

   addEventListener("command", function(e) {
      if ( e.button ) return;

      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      file.initWithPath("C:\\Program Files\\Download Master\\dmaster.exe"); //путь замените на свой
      process.init(file);
      process.run(false, [gContextMenu.getLinkURL()], 1);

   }, false, menuitem );
})();

Помогите прикрутить кнопку в меню - по клику на пустом месте страницы (как в google transliate), а то здесь только при нажатии на ссылку появляется, а нужно ,чтоб и тут, и там появлялась.

Должно значит две кнопки в меню разных быть, одна будет выделенную ссылку передавать, а вторая (клик по пустому полю) передавать адрес страницы:

Выделить код

Код:

var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath("C:\\Program Files\\SMPlayer\\smplayer.exe");
var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init( file );
process.run( false, ["-add-to-playlist", window.content.location.href], 2);


var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath("C:\\Program Files\\SMPlayer\\smplayer.exe");
var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
process.init( file );
process.run( false, ["-add-to-playlist", gContextMenu.linkURL], 2);

Только вот как :sick:

Отредактировано fokanik (31-07-2015 16:30:22)

Отсутствует

 

№864431-07-2015 19:42:34

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

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

Отсутствует

 

№864531-07-2015 20:30:46

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

Re: Custom Buttons

fokanik

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

Выделить код

Код:

(()=> {
   var menuitem = document.createElement("menuitem");
   var contextMenu = document.getElementById("contentAreaContextMenu");

   menuitem.id = "open-in";
   menuitem.setAttribute("label", "Отправить в Download Master"); //видимое название, меняйте на свое
   menuitem.setAttribute("class", "menuitem-iconic");
   // иконка для пукта контекстного меню в base64, меняйте на свою -->
   menuitem.setAttribute("image", "data:image/ico;base64,AAABAAEAGDAAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZUAAEAAAAfAAEAHx03AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlkAAQAVACs+LwCtAAMAgAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAGoNDAL3/oCCzPjwAtgAAAIAAGwAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAig0YAtf+vL7T/7lCx/8oxpyU0AL4AAAByAC0AHZh6BQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFHAAhTNACe/5ogzP/YQb//xyj//9Q05/+9Ja4BHQC5AAAAYwAqABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzoABjwsAIP9hBDe/9tBxf/JLPv/xyz//8cs///WMu7tnhOvAA0AswAAAFcKMQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiNwANHSAAd/OACuP/40bE/8cq///HLP//yS3//8kt///HLf//0THv85ENxAAVALsAAABLACIADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGABb7XgA2P/JKtj/xyL//8ks/f/JLf3/yS3//8kt/f/HKv3/xyD//8Qf7sJzAMsACAChAAAAOzxGAAYAAAAAAAAAAAAAAABBUVgCABUtAgAVKgIbLTwBAAAAAGNGABnrgBfw//+6+///t/7/9Zj//8Yk/f/HLP3/yi3//84t/f/KJf3//8H///+3////v/eiSwDeAAoAVAANAA8AAAAAYmVgBAYdMSwACidXAA0oXgANKF4ACihQAAAnIpVMC4C1WAChokYAnpU/AKmVNwDL+mIA//9oAP//agD//38A//+LAP+iPADvfTwArcReAJvtehCiXUYAUAAAAAAAAAAAVlhRSEREObQ/QzzYPkQ82kNGP9svNjTGAAUifAAAJUUAACAkAAUtQAAaVH8DKlHJekk6/3c/L/18Pij/pUEG/d4/AP9eDQDhAAAATgAAAAAAAAAAAAAAAAAAAABqa2ACUE48l5WQd7qwrJXzqKKG/7Snhv8KEhr8RmJ96xM5XsIAIk6uGlGO2lGO0fesydj/ssnG/6PJ2f+Ewvj/VJPg/zpgmP8kQVj6ABISnAASIiIAAAAAAAAAAAAAAABta14dYFlJpbW1pZQ6OjL4hIh9/qKjmv2Am6L/eK/u/id12/9vre3/kdT//8fm8/+w1vD9m8fw/aPE3P29ysf/WJ3w/Sd9/f9Olv/fOXe/4wAOMl4AAAAAAAAAAAAAAABvb2Aob2pUqKqjibJ1cFv/lY53/X2Bd/211N7/NoHr/UGQ//2V1v//js7//YTH//93vP/9eLz//nq9//19wf//UZb7/S967f5Jk//uRojc0gAgR4UFGzQIAAAAAAAAAABycGMud3BZr6qjidyspY3/r6eI/Wt3cP211OX/N4Tt/Wut//14uf//d7f//Xy6//99vf/9gb///YTB//2Jx///Zqj//Shw3v4sdeD5OX/bvidiosIFGjIOAAAAAAAAAAB4d2gwgHpjw62njeqloIb/raKG/2p1b//H7fv/Knzt/2+0//96uv//fLr//329//+Ewf//iMb//4nH//+Oyv//b7D//zF87f8+ifb/TJP2xSpmra4AGDQRAAAAAAAAAAB/fWoxgHhi1Kylje6looj/qKCD/X2JhP3Z/f//MoDu/Xy6//19vf//gL///YbH//+Lx//9iMf//YnG//2W0f//fLf//SVw4f06g+n/RInmxR9Wm5YAGjceAAAAAAAAAACAfWs1fXhi2Kylie6loIT/pZ6B/ZiekP3o////W6D2/YbH//2Nyv//kM7//ZrT//+d1P/9oNj//aXZ//2v4///c7D//SRw2/1Wnfr/Zaz/xDJ1xLEAGDQaAAAAAAAAAACAfW0qb2hT1qijjveqpY3/rKOI/3x/cP/r////TJX1/3y9//+V0///ltH//5XR//+d0///otn//6fb//+q3v//Y6P9/z+L8/9Qlvj/RIvpxCBbo5UBGzcYAAAAAAAAAACDf2sea2hW0Lq/t/+/xsH/vb21/ZabkP3O6ej/b8z//XXO//288///xPj//cf6//+v5v/9quD//azj//216f//Zar//TqD4/5MkPD4UJXwsCdlsKABGzcWAAAAAAAAAACBgW0HVFFBnrW5sP/Hzsn/xszH/rWwnf6vydH/hLXw/xNZsv99ufv/uvP//ub////m///90////c////3t////i+n//Xze//4/htz3LGu11iVgpZ8AFS8EAAAAAAAAAAAAAAAAdXBeZXNrVPOBfGD3gHpe9ouAZvgyMiTpf5aex1Z3kDwva6qrS4jM9dT///9vo9v/NGun/2J/kf9TeJH/SW2R/0tqhv9oc33/VJjY/iVdllEAAAAAAAAAAAAAAAAAAAAAhoZ3FHByZlhrcmtia3NvYmt1cmR6iY1EAAAAAAAAAACQtdYFMWWeY1SY2L1JcqX/x6Jr/v/6ff3/4Vj//+FG/f/YKP96RADmAExqd2uVxA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+w2xQyQ0xo/4EA9/aNIP74hhX/+oYQ/f+EDf+GRgCDA0s/AwAAAAAAAAAAAAAAAAAAAAD//D////g////4H///8Af//+AH///AA///gAH//4AA/+EAAP+AAAH/gAAP/wAAB/8AAAf/AAAD/wAAA/8AAAP/AAAD/wAAA/8AAAP/AAAD/wAAA/+AAAf/gYAH///gD/8=");
   document.getElementById("context-sep-open").parentNode.insertBefore( menuitem, document.getElementById("context-sep-open") );

   addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu, false, contextMenu );
   addDestructor( ()=> contextMenu.removeChild(menuitem) );

   addEventListener("command", function(e) {
      if ( e.button ) return;

      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      file.initWithPath("C:\\Program Files\\Download Master\\dmaster.exe"); //путь замените на свой
      process.init(file);
      // Если меню вызвать на ссылке - в dm будет передана она. Иначе - адрес текущей страницы
      if (!gContextMenu.onLink) {
      process.run(false, [content.location.href], 1);
      } else {
      process.run(false, [gContextMenu.getLinkURL()], 1);
      };
   }, false, menuitem );
})();

Отсутствует

 

№864631-07-2015 20:43:56

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

Re: Custom Buttons

turbot
Можно вместо:

Выделить код

Код:

addEventListener("command", function(e) {
........
}, false, menuitem );

использовать:

Выделить код

Код:

menuitem.onclick = function(e) {
........
};

Отредактировано bunda1 (31-07-2015 20:57:18)

Отсутствует

 

№864731-07-2015 20:51:53

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

bunda1 пишет

menuitem.onclick = function() { ........ };

Так ссылка вообще не хочет передаваться.

turbot, работает, спасибо!

Отредактировано fokanik (31-07-2015 20:54:35)

Отсутствует

 

№864831-07-2015 20:59:41

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

Re: Custom Buttons

fokanik пишет
bunda1 пишет

menuitem.onclick = function() { ........ };

Так ссылка вообще не хочет передаваться.

Ну да :blush:, нужно e в function()

Выделить код

Код:

((contextMenu)=> {
   var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open") );
   
   menuitem.id = "open-in";
   menuitem.setAttribute("label", "Отправить в Download Master"); //видимое название, меняйте на свое
   menuitem.setAttribute("class", "menuitem-iconic");
   // иконка для пукта контекстного меню в base64, меняйте на свою -->
   menuitem.setAttribute("image", "data:image/ico;base64,AAABAAEAGDAAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZUAAEAAAAfAAEAHx03AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlkAAQAVACs+LwCtAAMAgAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAGoNDAL3/oCCzPjwAtgAAAIAAGwAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAig0YAtf+vL7T/7lCx/8oxpyU0AL4AAAByAC0AHZh6BQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFHAAhTNACe/5ogzP/YQb//xyj//9Q05/+9Ja4BHQC5AAAAYwAqABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALzoABjwsAIP9hBDe/9tBxf/JLPv/xyz//8cs///WMu7tnhOvAA0AswAAAFcKMQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiNwANHSAAd/OACuP/40bE/8cq///HLP//yS3//8kt///HLf//0THv85ENxAAVALsAAABLACIADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGABb7XgA2P/JKtj/xyL//8ks/f/JLf3/yS3//8kt/f/HKv3/xyD//8Qf7sJzAMsACAChAAAAOzxGAAYAAAAAAAAAAAAAAABBUVgCABUtAgAVKgIbLTwBAAAAAGNGABnrgBfw//+6+///t/7/9Zj//8Yk/f/HLP3/yi3//84t/f/KJf3//8H///+3////v/eiSwDeAAoAVAANAA8AAAAAYmVgBAYdMSwACidXAA0oXgANKF4ACihQAAAnIpVMC4C1WAChokYAnpU/AKmVNwDL+mIA//9oAP//agD//38A//+LAP+iPADvfTwArcReAJvtehCiXUYAUAAAAAAAAAAAVlhRSEREObQ/QzzYPkQ82kNGP9svNjTGAAUifAAAJUUAACAkAAUtQAAaVH8DKlHJekk6/3c/L/18Pij/pUEG/d4/AP9eDQDhAAAATgAAAAAAAAAAAAAAAAAAAABqa2ACUE48l5WQd7qwrJXzqKKG/7Snhv8KEhr8RmJ96xM5XsIAIk6uGlGO2lGO0fesydj/ssnG/6PJ2f+Ewvj/VJPg/zpgmP8kQVj6ABISnAASIiIAAAAAAAAAAAAAAABta14dYFlJpbW1pZQ6OjL4hIh9/qKjmv2Am6L/eK/u/id12/9vre3/kdT//8fm8/+w1vD9m8fw/aPE3P29ysf/WJ3w/Sd9/f9Olv/fOXe/4wAOMl4AAAAAAAAAAAAAAABvb2Aob2pUqKqjibJ1cFv/lY53/X2Bd/211N7/NoHr/UGQ//2V1v//js7//YTH//93vP/9eLz//nq9//19wf//UZb7/S967f5Jk//uRojc0gAgR4UFGzQIAAAAAAAAAABycGMud3BZr6qjidyspY3/r6eI/Wt3cP211OX/N4Tt/Wut//14uf//d7f//Xy6//99vf/9gb///YTB//2Jx///Zqj//Shw3v4sdeD5OX/bvidiosIFGjIOAAAAAAAAAAB4d2gwgHpjw62njeqloIb/raKG/2p1b//H7fv/Knzt/2+0//96uv//fLr//329//+Ewf//iMb//4nH//+Oyv//b7D//zF87f8+ifb/TJP2xSpmra4AGDQRAAAAAAAAAAB/fWoxgHhi1Kylje6looj/qKCD/X2JhP3Z/f//MoDu/Xy6//19vf//gL///YbH//+Lx//9iMf//YnG//2W0f//fLf//SVw4f06g+n/RInmxR9Wm5YAGjceAAAAAAAAAACAfWs1fXhi2Kylie6loIT/pZ6B/ZiekP3o////W6D2/YbH//2Nyv//kM7//ZrT//+d1P/9oNj//aXZ//2v4///c7D//SRw2/1Wnfr/Zaz/xDJ1xLEAGDQaAAAAAAAAAACAfW0qb2hT1qijjveqpY3/rKOI/3x/cP/r////TJX1/3y9//+V0///ltH//5XR//+d0///otn//6fb//+q3v//Y6P9/z+L8/9Qlvj/RIvpxCBbo5UBGzcYAAAAAAAAAACDf2sea2hW0Lq/t/+/xsH/vb21/ZabkP3O6ej/b8z//XXO//288///xPj//cf6//+v5v/9quD//azj//216f//Zar//TqD4/5MkPD4UJXwsCdlsKABGzcWAAAAAAAAAACBgW0HVFFBnrW5sP/Hzsn/xszH/rWwnf6vydH/hLXw/xNZsv99ufv/uvP//ub////m///90////c////3t////i+n//Xze//4/htz3LGu11iVgpZ8AFS8EAAAAAAAAAAAAAAAAdXBeZXNrVPOBfGD3gHpe9ouAZvgyMiTpf5aex1Z3kDwva6qrS4jM9dT///9vo9v/NGun/2J/kf9TeJH/SW2R/0tqhv9oc33/VJjY/iVdllEAAAAAAAAAAAAAAAAAAAAAhoZ3FHByZlhrcmtia3NvYmt1cmR6iY1EAAAAAAAAAACQtdYFMWWeY1SY2L1JcqX/x6Jr/v/6ff3/4Vj//+FG/f/YKP96RADmAExqd2uVxA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+w2xQyQ0xo/4EA9/aNIP74hhX/+oYQ/f+EDf+GRgCDA0s/AwAAAAAAAAAAAAAAAAAAAAD//D////g////4H///8Af//+AH///AA///gAH//4AA/+EAAP+AAAH/gAAP/wAAB/8AAAf/AAAD/wAAA/8AAAP/AAAD/wAAA/8AAAP/AAAD/wAAA/+AAAf/gYAH///gD/8=");

   addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu, false, contextMenu );
   addDestructor( ()=> contextMenu.removeChild(menuitem) );

   menuitem.onclick = function(e) {
      if ( e.button ) return;
      
      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
      var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
      file.initWithPath("C:\\Program Files\\Download Master\\dmaster.exe"); //путь замените на свой
      process.init(file);
      
      // Если меню вызвать на ссылке - в dm будет передана она. Иначе - адрес текущей страницы
      !gContextMenu.onLink
      ? process.run(false, [content.location.href], 1)
      : process.run(false, [gContextMenu.getLinkURL()], 1);
   };
})(document.getElementById("contentAreaContextMenu"));

Отредактировано bunda1 (01-08-2015 00:15:08)

Отсутствует

 

№864931-07-2015 21:05:55

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

bunda1 пишет

Ну да, нужно e в function()

А - е - это, что за знак, блин, да где справку-то брать? Тут эти кнопки на пяти языках разных что-ли пишутся - не пойму?

Отсутствует

 

№865031-07-2015 21:12:52

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

Re: Custom Buttons

fokanik пишет

А - е - это, что за знак, блин, да где справку-то брать? Тут эти кнопки на пяти языках разных что-ли пишутся - не пойму?

e это event смотри тут Объект события

Добавлено 31-07-2015 21:13:02
А такой справки нету и я тоже не смогу объяснить потому что медленно пишу на русском.

Отредактировано bunda1 (31-07-2015 21:13:02)

Отсутствует

 

Board footer

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