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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№207616-05-2018 18:30:09

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

Garalf пишет:

Можно ли восстановить работоспособность кнопки Autocopy+3 в FF60+

вот да, волшебно бы было. можно даже в просто 60 без плюсика ибо ЕСР. :blush:

Отсутствует

 

№207716-05-2018 19:46:01

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

В FF 60 - настройка кнопки: вместо F2 - unknown_113 ? Парит реально , где поганка зарыта?

Простое переключение в about:config , типа false- true , делаю, но раньше проще было. Теперь вторую иконку прописывать надо....

PlacesUtils.history.clear(); Очистить историю , а надо "очистить историю закрытых вкладок"

Нужен дв.клик по вкладке - закрыть остальные! ...Есть креативщики?

Отредактировано drage2 (18-05-2018 09:49:48)

Отсутствует

 

№207819-05-2018 09:39:48

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 846
UA: Firefox 52.0

Re: Обсуждение кнопок CB

Garalf пишет:

Можно ли восстановить работоспособность кнопки Autocopy+3 в FF60+

Не, «+3», для меня слишком заморочно.
Решил попытаться просто Autocopy сделать, так не уверен,
что пригодно к использованию получилось.
Впрочем, можешь попробовать

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

Выделить код

Код:

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%3EAutocopy%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAgEAAcHBAAIBwQACAcEAAgHBAAIBwQACAcEAAgHBAAIBwQACAQDAQEAAAAAAAAAAAAAAAADAgADAAAAACcVAB+qXAC3vGsB4LlqAd26agHeumoB3rpqAd66agHeumoB3rhoAN26agHgs2IAxTceAC8AAAAAAAEAAAIBAAQAAAQAoFcApv2zVv/+1qn8/9Of///Uov//1KL//9Si///Uov//1KL//9en//7Vpfz9t2L/tGMAvwEAAQAAAAAAKBUAH6FXAKnPcgD12IYf/dyMJ/3biiP924sk/duLJf3biyX924sm/dqJIv3im0P9/du1/P7Xqv+7agHdCQUACAAAAQCrXgCz+69R//TFj/vxvn//8r5///K+gP/yvoD/8r6A//K+f//yvX7/9MKH/9yMKv/inkv9/960/7loAN0HAwAICQUACLxrAdz91af//+LB/f/fu///4b///+G////hv///4b///+G///7fu///58n/8cOK/9qMK/3/4Lr/umoC3gcDAAgHBAAIuWoC3f/Vpf/+4MD9/t67//7fvv/+4L///uC///7gv//+377//t26///kxv/xwYb/248t/f/kw/+6agPeBwMACAcEAAi6agLe/9qw///oz/3/5cr//+fN///nzv//587//+fO///nzf/+5cj//+zW//LFj//bkC/9/+nN/7pqA94HAwAIBwQACLpqAt7/37n//+7c/f/r1v//7dn//+3a///t2v//7dr//+3Z//7q1f//8uP/8siW/9uQMf3/7NX/umoE3gcDAAgHBAAIumoC3v/jwf//8+j9//Dh///y5P//8+X///Pl///z5f//8uT//vDg///47v/yy53/25Ey/f/w3P+6awTeBwMACAcEAAi6agLe/+bJ///48v3/9er///bt///37v//9+////fu///27f/+9On///34//LOo//bkTL9//Hf/7lqBd0HAwAIBwQACLpqAt7/6c////z6/f/48f//+vT///r1///69f//+vX///r0//738P//////8dGo/9uTNf3/9Of/vGsE3AkEAAgHBAAIuWkC3f/q0f///v79//r0///79////Pj///z4///8+P//+/f//vn0///////y06z/2Iso+/3Def+rXQCzAAACAAkFAAi7agHd/u3a//////z//v39/////f////3////9/////f////3+/fz9/////fPcvv7QbwD1oVYCqScVAB8AAAAAAQACALRiAL/9yYf//vLk/P/t1///7tn//+7Z///u2f//7tn//+7Z///t1//98eP8/L1u/6BVAKYAAAUAAgEABAABAAAAAAAANx4ALrNhAMW7agLguWoC3bpqAt66agLeumoC3rpqAt66agLeuWoC3bxrAeCqWwC3JxUAHwAAAAADAgADAAAAAAAAAAAAAAAABAMCAQgEAAgHBAAIBwQACAcEAAgHBAAIBwQACAcEAAgHBAAICAQABwMDAgAAAAABAAAAAAAAAAAAAAAA6AGAQaAAgEGgAIBBgAAAQYAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAACAQQAAgEGAAoBBgAKAQcALgEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.closest%28%22toolbarpaletteitem%22%29%20%7C%7C%20%28script%20%3D%3E%20%7B%0A%09var%20id%20%3D%20%60CB%24%7B_id.slice%2820%29%7D%3AAutocopy%60%2C%20pid%20%3D%20id%20+%20%22Parent%22%3B%0A%09var%20nsvoStr%20%3D%20%60Components.utils.import%28%22resource%3A//gre/modules/Services.jsm%22%2C%20%7B%7D%29%60%3B%0A%09var%20nsvo%20%3D%20eval%28nsvoStr%29%2C%20%7BServices%7D%20%3D%20nsvo%2C%20parent%20%3D%20nsvo%5Bpid%5D%3B%0A%09if%20%28%21parent%29%20%7B%0A%09%09var%20cid%20%3D%20id%20+%20%22Child%22%2C%20u%20%3D%20code%20%3D%3E%20%22data%3A%2C%22%20+%20encodeURIComponent%28code%29%3B%0A%09%09var%20pref%20%3D%20%22CB.Autocopy.settings%22%2C%20topic%20%3D%20%22quit-application-granted%22%3B%0A%09%09var%20PREF_ENABLED%20%3D%201%2C%20PREF_BLINK%20%3D%202%2C%20PREF_RESET%20%3D%204%3B%0A%0A%09%09%28parent%20%3D%20nsvo%5Bpid%5D%20%3D%20%7B%0A%09%09%09init%28%29%20%7B%0A%09%09%09%09this.readSettings%28%29%3B%0A%09%09%09%09if%20%28%21this%5BPREF_ENABLED%5D%29%20return%3B%0A%09%09%09%09this.initChild%28%29%3B%0A%09%09%09%09if%20%28this%5BPREF_RESET%5D%29%20this.setObserver%28true%29%3B%0A%09%09%09%7D%2C%0A%09%09%09destroy%28reason%29%20%7B%0A%09%09%09%09var%20ud%20%3D%20reason%5B5%5D%20%3D%3D%20%22e%22%3B%0A%09%09%09%09if%20%28ud%20%7C%7C%20%21this.obsAdded%29%20this.saveSettings%28%29%3B%0A%09%09%09%09delete%20nsvo%5Bpid%5D%3B%0A%09%09%09%09if%20%28reason%20%3D%3D%20%22delete%22%29%20Services.prefs.clearUserPref%28pref%29%3B%0A%09%09%09%09if%20%28%21this%5BPREF_ENABLED%5D%29%20return%3B%0A%0A%09%09%09%09this.destroyChild%28%29%3B%0A%09%09%09%09if%20%28ud%20%26%26%20this%5BPREF_RESET%5D%29%20this.setObserver%28false%29%3B%0A%09%09%09%7D%2C%0A%09%09%09get%20processURL%28%29%20%7B%0A%09%09%09%09delete%20this.processURL%3B%0A%09%09%09%09this.frameURL%20%3D%20u%28%60%24%7BnsvoStr%7D%5B%22%24%7Bcid%7D%22%5D.init%28this%29%3B%60%29%3B%0A%09%09%09%09return%20this.processURL%20%3D%20u%28script.replace%28/%25ID%25/g%2C%20cid%29%0A%09%09%09%09%09.replace%28%22%25NSVO%25%22%2C%20nsvoStr%29.replace%28%22%25BLINK%25%22%2C%20this%5BPREF_BLINK%5D%29%0A%09%09%09%09%29%3B%0A%09%09%09%7D%2C%0A%09%09%09get%20frameURLDestroy%28%29%20%7B%0A%09%09%09%09delete%20this.frameURLDestroy%3B%0A%09%09%09%09this.processURLDestroy%20%3D%20u%28%60%24%7BnsvoStr%7D%5B%22%24%7Bcid%7D%22%5D.forget%28%29%3B%60%29%3B%0A%09%09%09%09return%20this.frameURLDestroy%20%3D%20u%28%60%24%7BnsvoStr%7D%5B%22%24%7Bcid%7D%22%5D.destroy%28this%29%3B%60%29%3B%0A%09%09%09%7D%2C%0A%09%09%09initChild%28%29%20%7B%0A%09%09%09%09Services.ppmm.loadProcessScript%28this.processURL%2C%20true%29%3B%0A%09%09%09%09Services.mm.loadFrameScript%28this.frameURL%2C%20true%29%3B%0A%09%09%09%7D%2C%0A%09%09%09destroyChild%28%29%20%7B%0A%09%09%09%09Services.mm.removeDelayedFrameScript%28this.frameURL%29%3B%0A%09%09%09%09Services.mm.loadFrameScript%28this.frameURLDestroy%2C%20false%29%3B%0A%09%09%09%09Services.ppmm.removeDelayedProcessScript%28this.processURL%29%3B%0A%09%09%09%09Services.ppmm.loadProcessScript%28this.processURLDestroy%2C%20false%29%3B%0A%09%09%09%7D%2C%0A%09%09%09readSettings%28%29%20%7B%0A%09%09%09%09this.prefVal%20%3D%20Services.prefs.getIntPref%28pref%2C%203%29%3B%0A%09%09%09%09for%28var%20setting%20of%20%5BPREF_ENABLED%2C%20PREF_BLINK%2C%20PREF_RESET%5D%29%0A%09%09%09%09%09this%5Bsetting%5D%20%3D%20Boolean%28this.prefVal%20%26%20setting%29%3B%0A%09%09%09%7D%2C%0A%09%09%09saveSettings%28%29%20%7B%0A%09%09%09%09var%20settings%20%3D%200%3B%0A%09%09%09%09for%28var%20setting%20of%20%5BPREF_ENABLED%2C%20PREF_BLINK%2C%20PREF_RESET%5D%29%0A%09%09%09%09%09if%20%28this%5Bsetting%5D%29%20settings%20+%3D%20setting%3B%0A%09%09%09%09if%20%28this.prefVal%20%21%3D%20settings%29%0A%09%09%09%09%09Services.prefs.setIntPref%28pref%2C%20settings%29%3B%0A%09%09%09%7D%2C%0A%09%09%09btns%3A%20new%20Set%28%29%2C%0A%09%09%09register%28btn%29%20%7B%0A%09%09%09%09this.btns.add%28btn%29%3B%0A%09%09%09%09btn._handleClick%20%3D%20this.click%3B%0A%09%09%09%09btn.oncontextmenu%20%3D%20this.context%3B%0A%09%09%09%09this.setImg%28btn%2C%20this%5BPREF_ENABLED%5D%29%3B%0A%09%09%09%7D%2C%0A%09%09%09unregister%28btn%2C%20reason%29%20%7B%0A%09%09%09%09this.btns.delete%28btn%29%3B%0A%09%09%09%09if%20%28%21this.btns.size%29%20this.destroy%28reason%29%3B%0A%09%09%09%7D%2C%0A%09%09%09setImg%28btn%2C%20state%29%20%7B%0A%09%09%09%09btn.ownerDocument.getAnonymousElementByAttribute%28%0A%09%09%09%09%09btn%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%0A%09%09%09%09%29.src%20%3D%20state%0A%09%09%09%09%09%3F%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAQIAAcEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAcACAMEAQEAAAAAAAAAAAAAAAACAwADAAAAABUnAB9cqgC3a7wB4Gq5Ad1qugHearoB3mq6Ad5qugHearoB3mi4AN1qugHgYrMAxR43AC8AAAAAAAEAAAECAAQAAAQAV6AAprP9Vv/W/qn80/+f/9T/ov/U/6L/1P+i/9T/ov/U/6L/1/+n/9X+pfy3/WL/Y7QAvwEAAQAAAAAAFSgAH1ehAKlyzwD1htgf/YzcJ/2K2yP9i9sk/YvbJf2L2yX9i9sm/YnaIv2b4kP92/21/Nf+qv9quwHdBQkACAAAAQBeqwCzr/tR/8X0j/u+8X//vvJ//77ygP++8oD/vvKA/77yf/+98n7/wvSH/4zcKv+e4kv93v+0/2i5AN0DBwAIBQkACGu8AdzV/af/4v/B/d//u//h/7//4f+//+H/v//h/7//4f+//9/+u//n/8n/w/GK/4zaK/3g/7r/aroC3gMHAAgEBwAIarkC3dX/pf/g/sD93v67/9/+vv/g/r//4P6//+D+v//f/r7/3f66/+T/xv/B8Yb/j9st/eT/w/9qugPeAwcACAQHAAhqugLe2v+w/+j/z/3l/8r/5//N/+f/zv/n/87/5//O/+f/zf/l/sj/7P/W/8Xyj/+Q2y/96f/N/2q6A94DBwAIBAcACGq6At7f/7n/7v/c/ev/1v/t/9n/7f/a/+3/2v/t/9r/7f/Z/+r+1f/y/+P/yPKW/5DbMf3s/9X/aroE3gMHAAgEBwAIaroC3uP/wf/z/+j98P/h//L/5P/z/+X/8//l//P/5f/y/+T/8P7g//j/7v/L8p3/kdsy/fD/3P9rugTeAwcACAQHAAhqugLe5v/J//j/8v31/+r/9v/t//f/7v/3/+//9//u//b/7f/0/un//f/4/87yo/+R2zL98f/f/2q5Bd0DBwAIBAcACGq6At7p/8///P/6/fj/8f/6//T/+v/1//r/9f/6//X/+v/0//f+8P//////0fGo/5PbNf30/+f/a7wE3AQJAAgEBwAIabkC3er/0f/+//79+v/0//v/9//8//j//P/4//z/+P/7//f/+f70///////T8qz/i9go+8P9ef9dqwCzAAACAAUJAAhquwHd7f7a//////z+//39/////f////3////9/////f////39/vz9/////dzzvv5v0AD1VqECqRUnAB8AAAAAAQACAGK0AL/J/Yf/8v7k/O3/1//u/9n/7v/Z/+7/2f/u/9n/7v/Z/+3/1//x/eP8vfxu/1WgAKYAAAUAAQIABAABAAAAAAAAHjcALmGzAMVquwLgarkC3Wq6At5qugLearoC3mq6At5qugLearkC3Wu8AeBbqgC3FScAHwAAAAACAwADAAAAAAAAAAAAAAAAAwQCAQQIAAgEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAgABwMDAgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%0A%09%09%09%09%09%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgEDAAQACAcEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAHCAMBBAEAAAAAAAAAAAAAAAACAAMDAAAAABUAJx9cAKq3awG84GoBud1qAbreagG63moBut5qAbreagG63mgAuN1qAbrgYgCzxR4ANy8AAAAAAAABAAEAAgQABAAAVwCgprNW/f/Wqf7805///9Si///Uov//1KL//9Si///Uov//16f//9Wl/vy3Yv3/YwC0vwEBAAAAAAAAFQAoH1cAoalyAM/1hh/Y/Ywn3P2KI9v9iyTb/Ysl2/2LJdv9iybb/Yki2v2bQ+L927X9/Neq/v9qAbvdBQAJCAABAABeAKuzr1H7/8WP9Pu+f/H/vn/y/76A8v++gPL/voDy/75/8v+9fvL/wof0/4wq3P+eS+L93rT//2gAud0DAAcIBQAJCGsBvNzVp/3/4sH//d+7///hv///4b///+G////hv///4b///9+7/v/nyf//w4rx/4wr2v3guv//agK63gMABwgEAAcIagK53dWl///gwP793rv+/9++/v/gv/7/4L/+/+C//v/fvv7/3br+/+TG///BhvH/jy3b/eTD//9qA7reAwAHCAQABwhqArre2rD//+jP//3lyv//583//+fO///nzv//587//+fN///lyP7/7Nb//8WP8v+QL9v96c3//2oDut4DAAcIBAAHCGoCut7fuf//7tz//evW///t2f//7dr//+3a///t2v//7dn//+rV/v/y4///yJby/5Ax2/3s1f//agS63gMABwgEAAcIagK63uPB///z6P/98OH///Lk///z5f//8+X///Pl///y5P//8OD+//ju///LnfL/kTLb/fDc//9rBLreAwAHCAQABwhqArre5sn///jy//316v//9u3///fu///37///9+7///bt///06f7//fj//86j8v+RMtv98d///2oFud0DAAcIBAAHCGoCut7pz////Pr//fjx///69P//+vX///r1///69f//+vT///fw/v//////0ajx/5M12/305///awS83AQACQgEAAcIaQK53erR///+/v/9+vT///v3///8+P///Pj///z4///79///+fT+///////TrPL/iyjY+8N5/f9dAKuzAAIAAAUACQhqAbvd7dr+//////z+/f/9/////f////3////9/////f////39/P79/////dy+8/5vAND1VgKhqRUAJx8AAAAAAQIAAGIAtL/Jh/3/8uT+/O3X///u2f//7tn//+7Z///u2f//7tn//+3X///x4/38vW78/1UAoKYABQAAAQACBAAAAQAAAAAAHgA3LmEAs8VqArvgagK53WoCut5qArreagK63moCut5qArreagK53WsBvOBbAKq3FQAnHwAAAAACAAMDAAAAAAAAAAAAAAAAAwIEAQQACAgEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAIBwMCAwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0A%09%09%09%7D%2C%0A%09%09%09click%28%29%20%7B%0A%09%09%09%09var%20newState%20%3D%20parent%5BPREF_ENABLED%5D%20%3D%20%21parent%5BPREF_ENABLED%5D%3B%0A%09%09%09%09for%28var%20btn%20of%20parent.btns%29%20parent.setImg%28btn%2C%20newState%29%3B%0A%09%09%09%09newState%20%3F%20parent.initChild%28%29%20%3A%20parent.destroyChild%28%29%3B%0A%09%09%09%09if%20%28parent%5BPREF_RESET%5D%29%20parent.setObserver%28newState%29%3B%0A%09%09%09%7D%2C%0A%09%09%09context%28e%29%20%7B%0A%09%09%09%09if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%29%20return%3B%0A%09%09%09%09if%20%28e.detail%20%3E%201%29%20return%20parent.popup.hidePopup%28%29%3B%0A%09%09%09%09if%20%28%21this.contains%28parent.popup%29%29%20this.appendChild%28parent.popup%29%3B%0A%09%09%09%09e.preventDefault%28%29%3B%0A%09%09%09%09parent.popup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%09%09%09%7D%2C%0A%09%09%09get%20popup%28%29%20%7B%0A%09%09%09%09var%20win%20%3D%20Services.wm.getMostRecentWindow%28%22navigator%3Abrowser%22%29%3B%0A%09%09%09%09var%20doc%20%3D%20win.document%2C%20popup%20%3D%20doc.createElement%28%22menupopup%22%29%3B%0A%09%09%09%09popup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%3B%22%29%3B%0A%09%09%09%09popup.setAttribute%28%22oncommand%22%2C%20%22handleCommand%28event.target%29%3B%22%29%3B%0A%09%09%09%09for%28var%20%5Blab%2C%20pref%5D%20of%20win.Object.entries%28%7B%0A%09%09%09%09%09%22%u0412%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u043C%u0438%u0433%u0430%u0435%u0442%20%u043F%u0440%u0438%20%u0430%u0432%u0442%u043E%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0438%22%3A%20PREF_BLINK%2C%0A%09%09%09%09%09%22%u0412%u044B%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0440%u0438%20%u0432%u044B%u0445%u043E%u0434%u0435%20%u0438%u0437%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%22%3A%20PREF_RESET%0A%09%09%09%09%7D%29%29%20%7B%0A%09%09%09%09%09var%20menuitem%20%3D%20popup.appendChild%28doc.createElement%28%22menuitem%22%29%29%3B%0A%09%09%09%09%09menuitem.setAttribute%28%22label%22%2C%20lab%29%3B%0A%09%09%09%09%09menuitem.setAttribute%28%22type%22%2C%20%22checkbox%22%29%3B%0A%09%09%09%09%09if%20%28this%5Bmenuitem.pref%20%3D%20pref%5D%29%20menuitem.setAttribute%28%22checked%22%2C%20true%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09popup.handleCommand%20%3D%20menuitem%20%3D%3E%20%7B%0A%09%09%09%09%09var%20newState%20%3D%20this%5Bmenuitem.pref%5D%20%3D%20menuitem.hasAttribute%28%22checked%22%29%3B%0A%09%09%09%09%09if%20%28%21this%5BPREF_ENABLED%5D%29%20return%3B%0A%0A%09%09%09%09%09if%20%28menuitem.pref%20%3D%3D%20PREF_BLINK%29%0A%09%09%09%09%09%09Services.ppmm.broadcastAsyncMessage%28cid%20+%20%22%3AFromParent%22%2C%20%7Bblink%3A%20newState%7D%29%3B%0A%09%09%09%09%09else%20if%20%28menuitem.pref%20%3D%3D%20PREF_RESET%29%0A%09%09%09%09%09%09this.setObserver%28newState%29%3B%0A%09%09%09%09%7D%0A%09%09%09%09delete%20this.popup%3B%20return%20this.popup%20%3D%20popup%3B%0A%09%09%09%7D%2C%0A%09%09%09obsAdded%3A%20false%2C%0A%09%09%09setObserver%28set%29%20%7Bthis.obsAdded%20%3D%20set%0A%09%09%09%09%3F%20Services.obs.addObserver%28this%2C%20topic%2C%20false%29%0A%09%09%09%09%3A%20Services.obs.removeObserver%28this%2C%20topic%29%3B%0A%09%09%09%7D%2C%0A%09%09%09observe%28%29%20%7B%0A%09%09%09%09Services.obs.removeObserver%28this%2C%20topic%29%3B%0A%09%09%09%09this%5BPREF_ENABLED%5D%20%3D%20false%3B%0A%09%09%09%09this.saveSettings%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%29.init%28%29%3B%0A%09%7D%0A%09parent.register%28this%29%3B%0A%09addDestructor%28reason%20%3D%3E%20parent.unregister%28this%2C%20reason%29%2C%20parent%29%3B%0A%0A%7D%29%28%60%28nsvo%20%3D%3E%20%28nsvo%5B%22%25ID%25%22%5D%20%3D%20%7B%0A%09x%3A%20-1%2C%20y%3A%20-1%2C%20d%3A%20false%2C%0A%09handleEvent%28e%29%20%7Be.button%20%7C%7C%20this%5Be.type%5D%28e%29%3B%7D%2C%0A%09mousedown%28e%29%20%7Bthis.x%20%3D%20e.screenX%3B%20this.y%20%3D%20e.screenY%2C%20this.down%20%3D%20true%3B%7D%2C%0A%09mouseup%28e%29%20%7B%0A%09%09var%20%7Bdown%7D%20%3D%20this%3B%20this.down%20%3D%20false%3B%20if%20%28%21down%29%20return%3B%0A%09%09if%20%28e.screenX%20%3D%3D%20this.x%20%26%26%20e.screenY%20%3D%3D%20this.y%20%26%26%20%28e.detail%20%3D%3D%201%20%7C%7C%20e.target.matches%28%0A%09%09%09%22textarea%5Bdisabled%5D%2Cinput%5Bdisabled%5D%2Cbutton%2Cselect%2Csummary%22%0A%09%09%29%29%29%0A%09%09%09return%3B%0A%09%09var%20name%20%3D%20e.originalTarget.nodeName%3B%0A%09%09if%20%28/%5E%28%3F%3A%28%3F%3Axul%3A%29%3F%28%3F%3Aslider%7Cscrollbarbutton%29%7Cresizer%29%24/.test%28name%29%29%0A%09%09%09return%3B%0A%09%09this.x%20%3D%20this.y%20%3D%20-1%3B%0A%09%09var%20win%20%3D%20this.getFocusedWin%28e.target.ownerGlobal%29%3B%0A%09%09var%20sel%20%3D%20win.getSelection%28%29%3B%0A%09%09if%20%28sel.toString%28%29%29%20%7B%0A%09%09%09this.cm.doCommand%28%22cmd_copy%22%2C%20null%2C%20win%29%3B%0A%09%09%09this.blinkEnabled%20%26%26%20this.blink%28win%2C%20e.detail%20%3E%201%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09blinkEnabled%3A%20%25BLINK%25%2C%0A%09blink%28win%2C%20pause%29%20%7B%0A%09%09if%20%28pause%29%20return%20win.setTimeout%28%28%29%20%3D%3E%20this.blink%28win%29%2C%20100%29%3B%0A%09%09var%20sc%20%3D%20win.QueryInterface%28Components.interfaces.nsIInterfaceRequestor%29%0A%09%09%09.getInterface%28Components.interfaces.nsIWebNavigation%29%0A%09%09%09.QueryInterface%28Components.interfaces.nsIDocShell%29%0A%09%09%09.QueryInterface%28Components.interfaces.nsIInterfaceRequestor%29%0A%09%09%09.getInterface%28Components.interfaces.nsISelectionDisplay%29%0A%09%09%09.QueryInterface%28Components.interfaces.nsISelectionController%29%3B%0A%09%09sc.setDisplaySelection%28sc.SELECTION_OFF%29%3B%0A%09%09sc.repaintSelection%28sc.SELECTION_NORMAL%29%3B%0A%09%09win.setTimeout%28%28%29%20%3D%3E%20%7B%0A%09%09%09sc.setDisplaySelection%28sc.SELECTION_ON%29%3B%0A%09%09%09sc.repaintSelection%28sc.SELECTION_NORMAL%29%3B%0A%09%09%7D%2C%20150%29%3B%0A%09%7D%2C%0A%09getFocusedWin%28win%29%20%7B%0A%09%09var%20focusedWin%20%3D%20%7B%7D%3B%0A%09%09var%20elm%20%3D%20Services.focus.getFocusedElementForWindow%28win.top%2C%20true%2C%20focusedWin%29%3B%0A%09%09return%20focusedWin.value%3B%0A%09%7D%2C%0A%09get%20cm%28%29%20%7B%0A%09%09delete%20this.cm%3B%0A%09%09return%20this.cm%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-manager%3B1%22%5D%0A%09%09%09.getService%28Components.interfaces.nsICommandManager%29%3B%0A%09%7D%2C%0A%09count%3A%200%2C%0A%09init%28cfmm%29%20%7B%0A%09%09this.count%20+%3D%201%3B%0A%09%09cfmm.addEventListener%28%22mousedown%22%2C%20this%29%3B%0A%09%09cfmm.addEventListener%28%22mouseup%22%2C%20this%29%3B%0A%09%09cfmm.addEventListener%28%22unload%22%2C%20this%29%3B%0A%09%09if%20%28this.count%20%3D%3D%201%29%0A%09%09%09this.cpmm.addMessageListener%28%22%25ID%25%3AFromParent%22%2C%20this%29%3B%0A%09%7D%2C%0A%09destroy%28cfmm%29%20%7B%0A%09%09this.count%20-%3D%201%3B%0A%09%09cfmm.removeEventListener%28%22mousedown%22%2C%20this%29%3B%0A%09%09cfmm.removeEventListener%28%22mouseup%22%2C%20this%29%3B%0A%09%09cfmm.removeEventListener%28%22unload%22%2C%20this%29%3B%0A%09%09if%20%28%21this.count%29%0A%09%09%09this.cpmm.removeMessageListener%28%22%25ID%25%3AFromParent%22%2C%20this%29%3B%0A%09%7D%2C%0A%09receiveMessage%28msg%29%20%7B%0A%09%09if%20%28%22blink%22%20in%20msg.data%29%20this.blinkEnabled%20%3D%20msg.data.blink%3B%0A%09%7D%2C%0A%09unload%28e%29%20%7Bthis.destroy%28e.target%29%3B%7D%2C%0A%09forget%3A%20%28%29%20%3D%3E%20delete%20nsvo%5B%22%25ID%25%22%5D%0A%0A%7D%29.cpmm%20%3D%20this%29%28%25NSVO%25%29%3B%60%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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


drage2 пишет:

В FF 60 - настройка кнопки: вместо F2 - unknown_113 ? Парит реально , где поганка зарыта?

Ага, вижу. Поганка зарыта там же, где и обычно.

скрытый текст
Замени в CBKeyMapComponent.js

Выделить код

Код:

            var ikey = Components. interfaces. nsIDOMKeyEvent;

на

Выделить код

Код:

            var ikey = Components. interfaces. nsIDOMKeyEvent ||
                Cc ["@mozilla.org/appshell/appShellService;1"].
                    getService (Ci. nsIAppShellService).
                    hiddenDOMWindow. KeyEvent;

Ну, или вот, custom_buttons-0.0.5.8.9-fixed8.xpi с этой правкой.

Отредактировано Dumby (19-05-2018 09:46:19)

Отсутствует

 

№207919-05-2018 10:30:28

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

Dumby пишет:

Впрочем, можешь попробовать

я попробовал. гмм, сейчас глянул, из той автокопи+3 я только и пользовался функцией копирования при выделении текста. так что все прекрасно, спасибо. :)

Добавлено 19-05-2018 10:49:00
а вот эта кнопка поддается исправлению?

Выделить код

Код:

// Создать кнопку ярлык для сайта, от 18.08.2014.

// Дублировать кнопку и установить для новый кнопки иконку, название и код ................................
custombuttons.cloneButton( self );

var newButtonLink = custombuttons.makeButtonLink("update", self.nextSibling.id );
var params = custombuttons.cbService.getButtonParameters( newButtonLink ).wrappedJSObject;

params.name = gBrowser.mCurrentTab.label;   
params.image = gBrowser.mCurrentTab.image || "chrome://global/skin/icons/Portrait.png";
params.code = "gBrowser.selectedTab = loadURI ('" + content.location + "');";
params.initCode = "var icon = document.getAnonymousElementByAttribute( this, 'class', 'toolbarbutton-icon');" + "\n" +
                   "icon.style.width = '16px', icon.style.height = '16px';"   
   
params.wrappedJSObject = params;
custombuttons.cbService.installButton( params );

ВНИМАНИЕ!!! этот код на 60 ЕСР у меня завоевал весь мир! она, кнопка эта, начала копировать сама себя, клоны начали плодить клонов, эти клоны рождали других, ценой неимоверных нечеловеческих усилий я остановил размножение этой кнопки и спас мир от такого кода.

Отредактировано sonyas75 (19-05-2018 10:56:08)

Отсутствует

 

№208019-05-2018 11:05:14

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Dumby
Хвала! Всё, осталось дв.клик по вкладке....Остальное уже не важно. Ff60 - курвье маjko, мультипроцесс портит все...
Гонят фуфло и не краснеют...Из прЫнципа сломаю его, один хрен. Может скреативишся? Даешь, эту кнопку(дв.клик)
Чува тебе Бог!

this.onclick = function(e) {

Как на левую клавишу запустить конкретный файл? Это для кнопки Memory.

Отредактировано drage2 (19-05-2018 17:01:43)

Отсутствует

 

№208120-05-2018 09:07:21

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 846
UA: Firefox 52.0

Re: Обсуждение кнопок CB

sonyas75 пишет:

этот код на 60 ЕСР у меня завоевал весь мир! она, кнопка эта, начала копировать сама себя, клоны начали плодить клонов

Звучит так, как если бы код попал во вкладку Инициализация.
Но он явно педназначен для вкладки Код.

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

Выделить код

Код:

custombuttons.cloneButton(self, true);
var newButtonLink = custombuttons.makeButtonLink("update", self.nextSibling.id);
var params = custombuttons.cbService.getButtonParameters(newButtonLink).wrappedJSObject;

params.name = gBrowser.selectedTab.label;   
params.image = gBrowser.selectedTab.image || "chrome://global/skin/icons/Portrait.png";
params.code = `loadURI("${gBrowser.currentURI.spec}");`;
params.initCode = 'document.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon")\n\t'
    + '.style.cssText = "width: 16px; height: 16px;";';

custombuttons.cbService.installButton(params.wrappedJSObject = params);


drage2 пишет:

Даешь, эту кнопку(дв.клик)

Подробностей снова нет. Может так попробуй

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

Выделить код

Код:

((trg, param, tab, lst = {
    handleEvent(e) {
        if (e.button || e.ctrlKey || e.shiftKey || e.altKey) return;
        this[e.type](e);
    },
    click: e => e.detail == 2 && tab && e.stopPropagation(),
    mouseup(e) {
        if (e.detail < 2) return tab = e.target;
        if (tab.nodeName == "tab" && (tab = e.target == tab))
            setTimeout(this.closeTabs, 50, gBrowser.selectedTab);
    },
    closeTabs(tab) {
        var hbuTabs = [];
        for(var t of gBrowser.visibleTabs.reverse()) if (//!t.pinned &&
            t != tab) gBrowser._hasBeforeUnload(t)
                ? hbuTabs.push(t) : gBrowser.removeTab(t, param);
        for(t of hbuTabs) gBrowser.removeTab(t, param);
    }
}) => ["mouseup", "click"].forEach(type => addEventListener(type, lst, true, trg)))(
    gBrowser.tabs[0].boxObject.parentBox, {animate: false}
);


drage2 пишет:

this.onclick = function(e) {

Как на левую клавишу запустить конкретный файл?

this._handleClick = FileUtils.File("C:\\Windows\\notepad.exe").launch;

Отсутствует

 

№208220-05-2018 09:27:13

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

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

Dumby пишет:

Но он явно педназначен для вкладки Код.

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


Dumby
спасибо, работает :)

Отсутствует

 

№208320-05-2018 11:03:47

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Dumby

Круто.....Не постоје речи!
Что-то я затупил в 60 прошло this._handleClick = FileUtils.File("C:\\Windows\\notepad.exe").launch; , а в 57 нет , не могу сюда вставить...

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

Выделить код

Код:

// По клику подробно показать потребление памяти в вкладке, автор кода 'Dumby' .........................
   memoryDisplay.onclick = function(e) {
   e.target.setAttribute("context", "event.stopPropagation()");
      if ( e.button == 2) {
         
         
          // очистить кэш ....
          try {
              Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY);
              Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK);
              }
          catch(e) { Services.cache2.clear() }
    
          // Удалить Flash кукиси ....
          var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile);
          dir.append("Application Data");
          dir.append("Macromedia");
          if ( dir.exists() ) dir.remove(true);
          if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777);


Вопрос снят...Справился. Эта 60-запарила....PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId); -не срабатыват

Отредактировано drage2 (21-05-2018 00:23:57)

Отсутствует

 

№208421-05-2018 08:15:00

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 846
UA: Firefox 52.0

Re: Обсуждение кнопок CB

drage2 пишет:

Эта 60-запарила....PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId); -не срабатыват

:/

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

Выделить код

Код:

(self.bookmarkCurrentPage || (self.bookmarkCurrentPage = eval(`(${
    PlacesCommandHook.bookmarkPage.toSource()
        .replace("async", "$& function")
        .replace("unfiledGuid", "menuGuid")
})`).bind(PlacesCommandHook)))(gBrowser.selectedBrowser, true);

Отсутствует

 

№208521-05-2018 10:44:37

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 57.0

Re: Обсуждение кнопок CB

Dumby
Шикарно....Странно, что в 57 хватило и того кода...Теперь сходу в "меню закладок" ...Эсли бы не мультипроцесс...Даже copyClipboard  не работает...

Последний вопрос: простое в About:config , типа: как проще? не охота вторую иконку прописывать ....
var s = "media.autoplay.enabled";
var ps = Services.prefs;
Кажись Ваш код, ну,мало переделал, а как this.tooltipText = вставить?

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

Выделить код

Код:

// Дополнительные возможности для значка идентификации сайта в строке адреса .....
 (function copyAddrIdentIco() {
      const identBox = document.getElementById("identity-box");
      addEventListener("click", e => {
      
      e.stopPropagation();
      e.target.setAttribute("context", "event.stopPropagation()");
           switch (e.button) {
                case 2:  // ПКМ без запроса открывает информацию о странице в вкладке 'Мультимедиа' ....
                         identBox.onclick = function() { return false; }
                         let doc = content.document;
                         BrowserPageInfo( doc, ( (doc.location.protocol).slice(0,4) == "http") ? "mediaTab" : "generalTab" );
                         break;   // generalTab, mediaTab, feedTab, permTab, securityTab

             case 0:  // ЛКМ Добавит закладку ....     
                if ( e.ctrlKey || e.shiftKey ) {
                      identBox.oncontextmenu = function() { return true; }
                      break;
                     } else { identBox.oncontextmenu = function() { return false; } };
               (self.bookmarkCurrentPage || (self.bookmarkCurrentPage = eval(`(${
    PlacesCommandHook.bookmarkPage.toSource()
        .replace("async", "$& function")
        .replace("unfiledGuid", "menuGuid")
})`).bind(PlacesCommandHook)))(gBrowser.selectedBrowser, true);
           
             // значок идентификации сайта мигает 
             identBox.setAttribute("style", "background:red;");
             setTimeout(function() { identBox.removeAttribute("style") }, 300);
         }
       } , true, identBox );
 })();


Как ? Сюда Вставить это    identity.icon.tooltiptext =

Отредактировано drage2 (22-05-2018 14:19:19)

Отсутствует

 

№208622-05-2018 01:55:37

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

drage2
ух ты ж ё , пропустил. а вот этот код под спойлером рабочий? просто тут посреди ночи проверить не на чем. я тоже хочу такое, вообще-то думал, что такое не восстановить :blush:

Отсутствует

 

№208722-05-2018 07:30:05

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 566
UA: Firefox 58.0

Re: Обсуждение кнопок CB

sonyas75 пишет:

ух ты ж ё , пропустил. а вот этот код под спойлером рабочий?

Иконки мигают, но адрес не копирует и одновременно всплывает окно управления закладками.
Проверял на 60 портативке

Отсутствует

 

№208822-05-2018 07:50:05

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Ultima2m
Смотреть надо внимательней :
case 0:  // ЛКМ Добавит закладку ....     

Причем,закладку новую только в меню закладок....не в другие. И клик этот работает и в мультирежиме , а CopyClipboard - нет...

Добавлено 22-05-2018 08:00:49
sonyas75
Зацени...

Отредактировано drage2 (22-05-2018 08:00:49)

Отсутствует

 

№208922-05-2018 09:29:00

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

drage2 пишет:

Зацени...

ок. скачал, туториал прочел. время будет - запущу, погоняю.

Отсутствует

 

№209022-05-2018 16:36:25

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Коды из браузера
identity.icon.tooltip=
this._identityIcon.setAttribute("tooltiptext", gNavigatorBundle.getString("identity.icon.tooltip"));
Как дальше? Сюда:

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

Выделить код

Код:

// Дополнительные возможности для значка идентификации сайта в строке адреса .....
 (function copyAddrIdentIco() {
      const identBox = document.getElementById("identity-box");
      addEventListener("click", e => {
      
      e.stopPropagation();
      e.target.setAttribute("context", "event.stopPropagation()");
           switch (e.button) {
                case 2:  // ПКМ без запроса открывает информацию о странице в вкладке 'Мультимедиа' ....
                         identBox.onclick = function() { return false; }
                         let doc = content.document;
                         BrowserPageInfo( doc, ( (doc.location.protocol).slice(0,4) == "http") ? "mediaTab" : "generalTab" );
                         break;   // generalTab, mediaTab, feedTab, permTab, securityTab

             case 0:  // ЛКМ Добавит закладку ....     
                if ( e.ctrlKey || e.shiftKey ) {
                      identBox.oncontextmenu = function() { return true; }
                      break;
                     } else { identBox.oncontextmenu = function() { return false; } };
               (self.bookmarkCurrentPage || (self.bookmarkCurrentPage = eval(`(${
    PlacesCommandHook.bookmarkPage.toSource()
        .replace("async", "$& function")
        .replace("unfiledGuid", "menuGuid")
})`).bind(PlacesCommandHook)))(gBrowser.selectedBrowser, true);
           
             // значок идентификации сайта мигает 
             identBox.setAttribute("style", "background:red;");
             setTimeout(function() { identBox.removeAttribute("style") }, 300);
         }
       } , true, identBox );
 })();

Отсутствует

 

№209122-05-2018 18:23:33

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 846
UA: Firefox 52.0

Re: Обсуждение кнопок CB

drage2 пишет:

_identityIcon

_identityIcon так _identityIcon

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

Выделить код

Код:

(identBox => {
    var tip = "Some tooltip text";

    var icon = gIdentityHandler._identityIcon;
    addEventListener("mouseenter", () => icon.setAttribute("tooltiptext", tip), false, icon || 1);
    addDestructor(() =>
        icon.setAttribute("tooltiptext", gNavigatorBundle.getString("identity.icon.tooltip"))
    );
    var listener = {
        handleEvent(e) {
            e.ctrlKey || e.shiftKey || e.detail > 1 || this[e.type](e);
        },
        click(e) {
            if (e.button || !identBox.contains(e.target)) return;
            e.stopPropagation();
            this.bookmarkCurrentPage(gBrowser.selectedBrowser, true);
            identBox.setAttribute("style", "background:red;");
            setTimeout(() => identBox.removeAttribute("style"), 300);
        },
        contextmenu(e) {
            e.preventDefault();
            var url = gBrowser.currentURI.spec;
            BrowserPageInfo(url, url.startsWith("http") ? "mediaTab" : "generalTab");
        },
        get bookmarkCurrentPage() {
            delete this.bookmarkCurrentPage;
            return this.bookmarkCurrentPage = eval(`(${
                PlacesCommandHook.bookmarkPage.toSource()
                    .replace("async", "$& function")
                    .replace("unfiledGuid", "menuGuid")
            })`).bind(PlacesCommandHook);
        }
    };
    addEventListener("click", listener, true, identBox.parentNode);
    addEventListener("contextmenu", listener, false, identBox);
})(document.getElementById("identity-box") || 1);

Отсутствует

 

№209222-05-2018 18:46:19

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Dumby
Видал я крутых  креативщиков, но это...Нема речи...

А, это для 57....

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

Выделить код

Код:

// Дополнительные возможности для значка идентификации сайта в строке адреса .....
 (identBox => {
    var tip = "Л: Добавить закладку\nП: Мультимедиа";

    var icon = gIdentityHandler._identityIcon;
    addEventListener("mouseenter", () => icon.setAttribute("tooltiptext", tip), false, icon || 1);
    addDestructor(() =>
        icon.setAttribute("tooltiptext", gNavigatorBundle.getString("identity.icon.tooltip"))
    );
    var listener = {
        handleEvent(e) {
            e.ctrlKey || e.shiftKey || e.detail > 1 || this[e.type](e);
        },
        click(e) {
            if (e.button || !identBox.contains(e.target)) return;
            e.stopPropagation();
            PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId);
            identBox.setAttribute("style", "background:red;");
            setTimeout(() => identBox.removeAttribute("style"), 300);
        },
        contextmenu(e) {
            e.preventDefault();
            var url = gBrowser.currentURI.spec;
            BrowserPageInfo(url, url.startsWith("http") ? "mediaTab" : "generalTab");
        },
        get bookmarkCurrentPage() {
            delete this.bookmarkCurrentPage;
            return this.bookmarkCurrentPage = eval(`(${
                PlacesCommandHook.bookmarkPage.toSource()
                    .replace("async", "$& function")
                    .replace("unfiledGuid", "menuGuid")
            })`).bind(PlacesCommandHook);
        }
    };
    addEventListener("click", listener, true, identBox.parentNode);
    addEventListener("contextmenu", listener, false, identBox);
})(document.getElementById("identity-box") || 1);


Заманало...Copy Url в мультережиме сдохло...

Отредактировано drage2 (23-05-2018 08:19:16)

Отсутствует

 

№209323-05-2018 10:09:54

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 55
UA: Firefox 59.0

Re: Обсуждение кнопок CB

Dumby

Не, «+3», для меня слишком заморочно.
Решил попытаться просто Autocopy сделать

А может кто поправить самую простецкую Autocopy?

Выделить код

Код:

({
        PREF_ROOT: "autocopy",
        init: function() {
                cbu.isPref(this.PREF_ROOT, true);
                gPrefService.addObserver(this.PREF_ROOT, this, false);
                addDestructor(()=> gPrefService.removeObserver(this.PREF_ROOT, this));
                if (!gPrefService.getBoolPref(this.PREF_ROOT)) return;
                this.setAutocopy(true);
        },
        observe: function(subj, topic, data) {
                if (data == this.PREF_ROOT)
                this.setAutocopy(gPrefService.getBoolPref(data));
        },
        setAutocopy: function(set) {
                var method = set ? addEventListener : removeEventListener;
                for(var type of ["mousedown", "mouseup"]) method(type, this, false, gBrowser);
        },
        handleEvent: function(e) {
                if (e.button || e.target instanceof Ci.nsIDOMNSEditableElement) return;
                var win = e.target.ownerDocument.defaultView;
                if (win.top != content) return;
                var sel = win.getSelection().toString();
                if (e.type == "mousedown") {this.sel = sel; return;}
                if (!sel || sel == this.sel) return;
                goDoCommand("cmd_copy");
        }
}).init();

Отсутствует

 

№209423-05-2018 11:44:34

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 358
UA: Firefox 57.0

Re: Обсуждение кнопок CB

momo2000
дык вроде код из этого поста Обсуждение кнопок CB | Форум Mozilla Россия дает простейшую автокопи

Отредактировано sonyas75 (23-05-2018 11:45:42)

Отсутствует

 

№209523-05-2018 15:00:44

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 55
UA: Firefox 59.0

Re: Обсуждение кнопок CB

sonyas75
не, это ещё проще, ту нельзая в другую кнопку в инициализацию вставить, плюс там ненужные функции мигания выделенного, иконки и т.д.

Отсутствует

 

№209601-06-2018 12:46:17

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 211
UA: Firefox 57.0

Re: Обсуждение кнопок CB

Код для Seamonkey, но tooltiptext не могу вставить

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

Выделить код

Код:

// Дополнительные возможности для значка идентификации сайта в строке адреса ...............
  
addEventListener("click", e=> {
   if (
       e.button == 1
       || !/page-proxy-favicon|page-proxy-button/.test(e.target.id)
       || !cbu.getPrefs("CB.Autocopy.addToAddressBar")
      ) return;

   e.preventDefault();
   e.stopPropagation();
   e.target.setAttribute("context", "event.stopPropagation()");
   
   // ПКМ без запроса открывает информацию о странице....
   if ( e.button == 2 )
        BrowserPageInfo(content.document, (gURLBar.value.startsWith("http") ? "generalTab" : "generalTab"));
        
   // ЛКМ копирует текущий адрес ....     
   if ( e.button !== 0 ) return;
   gClipboard.write( content.location );
                      alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
                      alertsService.showAlertNotification("chrome://global/skin/icons/cpd_OK.png", "Clipboard", "Адрес в буфере");
                      setTimeout(()=> alertsService.closeAlert(), 1000); 
             // значок идентификации сайта мигает красным ....
   var id = (Services.appinfo.name == "SeaMonkey") ? "page-proxy-deck" : "identity-box";
   document.getElementById(id).style.background = "red";
   setTimeout(()=> document.getElementById(id).style.background = "", 300);
        
}, true, gURLBar);


А это код в XUL файле Seamonkey
скрытый текст

Выделить код

Код:

deck id="page-proxy-deck"
                class="urlbar-icons"
                ondragstart="proxyIconDNDObserver.onDragStart(event);"
                onclick="handlePageProxyClick(event);">
            <image id="page-proxy-button"
                   tooltiptext="&proxyIcon.tooltip;"/>
            <image id="page-proxy-favicon" validate="never"
                   onload="this.parentNode.selectedIndex = 1;
                           event.stopPropagation();"
                   onerror="gBrowser.addToMissedIconCache(this.src);"
                   tooltiptext="&proxyIcon.tooltip;"/>

Отредактировано drage2 (01-06-2018 14:30:28)

Отсутствует

 

№209706-06-2018 13:42:25

yacornei
Участник
 
Группа: Members
Зарегистрирован: 07-08-2012
Сообщений: 30
UA: IE 11.0

Re: Обсуждение кнопок CB

Подскажите люди добры :blush: Почему то перестала работать кнопка "Открыть страницу в Internet Explorer " вообще не реагирует на клик :sick:
Всегда работала без Б,а тут в один день бац и не фурычит.Удалял,переставлял никак не хочет.

Отсутствует

 

№209806-06-2018 14:12:51

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 43
UA: Firefox 60.0

Re: Обсуждение кнопок CB

yacornei пишет:

Подскажите люди добры :blush: Почему то перестала работать кнопка "Открыть страницу в Internet Explorer " вообще не реагирует на клик :sick:
Всегда работала без Б,а тут в один день бац и не фурычит.Удалял,переставлял никак не хочет.

https://forum.mozilla-russia.org/viewtopic.php?pid=758360#p758360

Отсутствует

 

№209906-06-2018 23:43:43

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3095
UA: Firefox 60.0

Re: Обсуждение кнопок CB

Приветствую, форумчане.
Имеется кнопка Search in Website+ с кодом

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

Выделить код

Код:

// Настройка функций кликов мыши для кнопки .....................................
this.onclick = function(e) {
     
     if ( e.button == 0 ) {
          if ( getSelect() ) {
               var text = getSelect();
               }
          else
               {
               var value = custombuttons.promptBox('Поиск по сайту в Google', 'Bведите текст ....');
               var text = value[0] ? value[1] : false;
               if ( text == false ) return;
               }              
           searchInWebsite( text );  
           } 
               
     if ( e.button == 1 ) searchInWebsite( gClipboard.read() );
};



/* Запускает поиск по сайту в Google текста который передан
   как аргумент при вызове функции ...............................................*/ 
function searchInWebsite( text ) { 
/*   var text = escape( convertFromUnicode("UTF-8", text) );            */ /* удалено для 57+ */
   var url = content.document.domain;   
   var url = encodeURIComponent( url );
   var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url;
   gBrowser.selectedTab = gBrowser.addTab( url ); 
};



/* Функция отдаст выделенный текст из страницы или текстового поля, 
   если текст не выделен отдаст 'false' ...........................................*/
function getSelect() {
  // выделенный текст из страницы ....
  var selection = document.commandDispatcher.focusedWindow.getSelection().toString();

  // выделенный текст из текстового поля ....
  if ( selection == '' ) {
       var theBox = document.commandDispatcher.focusedElement;
       if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
            var startPos = theBox.selectionStart;
        var endPos = theBox.selectionEnd;
        var selection = theBox.value.substring(startPos, endPos);  
            }
       };
         
  // убираем пробелы с обоих концов текста ....
  if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,"");
    
  return ( selection == '')? false: selection;
};



// Подсказка для кнопки .............................................................
this.tooltipText = "Поиск по сайту \nЛ: Поиск выделенного или введённого текста \nС: Поиск текста из буфера обмена \nП: CB меню";

   
   var cssURI = makeURI("data:text/css," + encodeURIComponent(self.Help));
   var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
       .getService(Components.interfaces.nsIStyleSheetService);
   sss.loadAndRegisterSheet(cssURI, sss.AGENT_SHEET);


которая прекрасно работала до того момента, когда вздумалось мне включить штатную стартовую страницу.
После чего эта кнопка перестала работать на любой странице, кроме страницы дополнения Quick Dial. Которое ранее было установлено и как домашняя страница. Если отключить Quick Dial, то кнопка, понятное дело, вообще не работает (окно ввода текста появляется, но новая вкладка с поиском не открывается).

Разумеется что столь сильное колдунство воспроизводить вряд-ли кто-то захочет (да и вряд-ли сможет без конкретно моего профиля), но может быть есть какие-то идеи или проблема известна в узких кругах опытных людей?
Параллельно перестал работать код google-translate и ещё пара кнопок из серии "открыть Х в...", "запустить Y..."

Отсутствует

 

№210007-06-2018 00:35:34

unter_officer
Участник
 
Группа: Members
Откуда: Санкт-Петербург
Зарегистрирован: 27-03-2011
Сообщений: 127
UA: Firefox 47.0

Re: Обсуждение кнопок CB

Coroner
Проверил "Search in Website+" и "google-translate" в [firefox] 60.0.2 ESR.
Обе кнопки нормально работают.

Отсутствует

 

Board footer

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