В FF 60 - настройка кнопки: вместо F2 - unknown_113 ? Парит реально , где поганка зарыта?
Простое переключение в about:config , типа false- true , делаю, но раньше проще было. Теперь вторую иконку прописывать надо....
PlacesUtils.history.clear(); Очистить историю , а надо "очистить историю закрытых вкладок"
Нужен дв.клик по вкладке - закрыть остальные! ...Есть креативщики?
Отредактировано drage2 (18-05-2018 09:49:48)
Отсутствует
Можно ли восстановить работоспособность кнопки 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
В FF 60 - настройка кнопки: вместо F2 - unknown_113 ? Парит реально , где поганка зарыта?
Ага, вижу. Поганка зарыта там же, где и обычно.
на
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)
Отсутствует
Впрочем, можешь попробовать
я попробовал. гмм, сейчас глянул, из той автокопи+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)
Отсутствует
Dumby
Хвала! Всё, осталось дв.клик по вкладке....Остальное уже не важно. Ff60 - курвье маjko, мультипроцесс портит все...
Гонят фуфло и не краснеют...Из прЫнципа сломаю его, один хрен. Может скреативишся? Даешь, эту кнопку(дв.клик)
Чува тебе Бог!
this.onclick = function(e) {
Как на левую клавишу запустить конкретный файл? Это для кнопки Memory.
Отредактировано drage2 (19-05-2018 17:01:43)
Отсутствует
этот код на 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);
Даешь, эту кнопку(дв.клик)
Подробностей снова нет. Может так попробуй
((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} );
this.onclick = function(e) {
Как на левую клавишу запустить конкретный файл?
this._handleClick = FileUtils.File("C:\\Windows\\notepad.exe").launch;
Отсутствует
Но он явно педназначен для вкладки Код.
угу. это я понял, когда копипастил этот код в свой пост. вот так, из-за одной маленькой ошибки рядового пользователя ФФ мир может быть захвачен какой-то там кнопкой.
Отсутствует
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);
Отредактировано drage2 (21-05-2018 00:23:57)
Отсутствует
Эта 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);
Отсутствует
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 ); })();
Отредактировано drage2 (22-05-2018 14:19:19)
Отсутствует
drage2
ух ты ж ё , пропустил. а вот этот код под спойлером рабочий? просто тут посреди ночи проверить не на чем. я тоже хочу такое, вообще-то думал, что такое не восстановить
Отсутствует
ух ты ж ё , пропустил. а вот этот код под спойлером рабочий?
Иконки мигают, но адрес не копирует и одновременно всплывает окно управления закладками.
Проверял на 60 портативке
Отсутствует
Ultima2m
Смотреть надо внимательней :
case 0: // ЛКМ Добавит закладку ....
Причем,закладку новую только в меню закладок....не в другие. И клик этот работает и в мультирежиме , а CopyClipboard - нет...
Добавлено 22-05-2018 08:00:49
sonyas75
Зацени...
Отредактировано drage2 (22-05-2018 08:00:49)
Отсутствует
Коды из браузера
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 ); })();
Отсутствует
_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);
Отсутствует
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);
Отредактировано drage2 (23-05-2018 08:19:16)
Отсутствует
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();
Отсутствует
momo2000
дык вроде код из этого поста Обсуждение кнопок CB | Форум Mozilla Россия дает простейшую автокопи
Отредактировано sonyas75 (23-05-2018 11:45:42)
Отсутствует
Код для 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);
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)
Отсутствует
Подскажите люди добры Почему то перестала работать кнопка "Открыть страницу в Internet Explorer " вообще не реагирует на клик
Всегда работала без Б,а тут в один день бац и не фурычит.Удалял,переставлял никак не хочет.
Отсутствует
Подскажите люди добры Почему то перестала работать кнопка "Открыть страницу в Internet Explorer " вообще не реагирует на клик
Всегда работала без Б,а тут в один день бац и не фурычит.Удалял,переставлял никак не хочет.
https://forum.mozilla-russia.org/viewtopic.php?pid=758360#p758360
Отсутствует
Приветствую, форумчане.
Имеется кнопка 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);
Разумеется что столь сильное колдунство воспроизводить вряд-ли кто-то захочет (да и вряд-ли сможет без конкретно моего профиля), но может быть есть какие-то идеи или проблема известна в узких кругах опытных людей?
Параллельно перестал работать код google-translate и ещё пара кнопок из серии "открыть Х в...", "запустить Y..."
Отсутствует
Coroner
Проверил "Search in Website+" и "google-translate" в 60.0.2 ESR.
Обе кнопки нормально работают.
«The Truth Is Out There»
Отсутствует