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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№1117625-01-2017 14:39:28

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

Re: Custom Buttons

xrun1 пишет

turbot
перестала работать работать кнопка Быстрое переключение параметров about:config.

Выделить код

Код:

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%3EQuick%20toggle%20for%20about%3Aconfig%20preferences%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0411%u044B%u0441%u0442%u0440%u043E%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20about%3Aconfig%20%u043E%u0442%2024.07.2016%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0AmenuPopup.id%20%3D%20%27quick-aboutconfig-menupopup%27%3B%0A%0A//%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043F%u0440%u0438%20%u043D%u0435%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0438%u0435%20%u043B%u044E%u0431%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u0435%u043B%u044C%u0441%u043A%u043E%u043C%u0443%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0442%u0435%u043D%u0438%u044E%20%28%u0441%u043C.%20%u043D%u0438%u0436%u0435%29.%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u0438%u0438%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043B%u0438%u0431%u043E%20%u043F%u043E%u0441%u043B%u0435%20%u0435%u0433%u043E%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u044F.%0Avar%20s%20%3D%20%27CB.hasNotUserChoice%27%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20var%20val%20%3D%20custombuttons.getPrefs%28s%29%3B%0A%20%20self.image%20%3D%20val%0A%20%20%20%20%3F%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%27%0A%20%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII%3D%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AServices.prefs.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.prefs.removeObserver%28s%2C%20toggleImage%29%29%3B%0A%0A//%20nodeName%3A%20menuitem%20-%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%20menu%20-%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29.%20menuseparator%20-%20%u0434%u043B%u044F%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044F.%0A//%20pref%20-%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20about%3Aconfig.%0A//%20%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0438%u043C%u0435%u044E%u0449%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u043E%u0442%u043B%u0438%u0447%u043D%u044B%u0435%20%u043E%u0442%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0445%20-%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u044B%20%u0436%u0438%u0440%u043D%u044B%u043C%20%u0441%u0442%u0438%u043B%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430.%0A//%20restart%20%28%u0437%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0441%20%u043F%u0443%u0441%u0442%u044B%u043C%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%u043C.%20%u0442.%u0435.%2C%20restart%3A%20%22%22%29%20-%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u043A%u0430%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//%20%28%u0441%20%u043F%u043E%u0434%u0442%u0432%u0435%u0440%u0436%u0434%u0435%u043D%u0438%u0435%u043C%20%u0432%20%u0434%u0438%u0430%u043B%u043E%u0433%u043E%u0432%u043E%u043C%20%u043E%u043A%u043D%u0435%29%20%u043F%u043E%u0441%u043B%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20key%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20accesskey%20-%20%u043A%u043B%u0430%u0432%u0438%u0448%u0438%20%u0434%u043B%u044F%20%u0431%u044B%u0441%u0442%u0440%u043E%u0439%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%20%u043F%u043E%20%u043C%u0435%u043D%u044E.%0A//%20userChoice%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0438%u0442%u0430%u0435%u043C%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0438%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0441%20%u043D%u0438%u043C%20%u043D%u0435%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%2C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E/%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u043E%u043C%u0435%u0447%u0430%u044E%u0442%u0441%u044F%20%u043A%u0440%u0430%u0441%u043D%u044B%u043C%20%u0446%u0432%u0435%u0442%u043E%u043C.%0A//%20%u0422%u0430%u043A%u0436%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0442%u0430%u043A%u0438%u0445%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432.%20%u0421%u043C.%20%u0441%u0442%u0438%u043B%u044C%20%u0432%20%u043F%u043E%u0441%u0442%u0435%20%u043A%u043A%u043D%u043E%u043F%u043A%u0438.%0A//%20%u0410%20%u0442%u0430%u043A%u0436%u0435%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0438%u043A%u043E%u043D%u043A%u0430%20%u0441%u0430%u043C%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%28%u0441%u043C.%20%u0432%u044B%u0448%u0435%29.%0A//%20strValues%20-%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0438%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u043C%u043E%u0435%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F.%20%u0417%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u0417%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u0432%u0438%u0434%u0435%3A%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%2C%2C%2Caccesskey%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04352%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04352%2C%2C%2Caccesskey2%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04353%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04353%20%u0438%20%u0442.%u0434.%20%28accesskey%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u043E%u043F%u0446%u0438%u043E%u043D%u0430%u043B%u044C%u043D%u043E%29%0A//%20%u041F%u043E%u043B%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%u0445%2C%20%u043F%u0440%u0438%20%u043D%u0430%u0432%u0435%u0434%u0435%u043D%u0438%u0438%20%u043D%u0430%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E/%u043F%u0443%u043D%u043A%u0442%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E.%0A//%20%u0414%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20-%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0441%u0440%u0430%u0437%u0443%20%u043F%u043E%u0441%u043B%u0435%20%u0441%u0430%u043C%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%28%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20true%20-%20%u0442%u0430%u043A%u0436%u0435%20%u0441%u0442%u0430%u0432%u0438%u0442%20%u0433%u0430%u043B%u043E%u0447%u043A%u0443%20%u0434%u043B%u044F%20%u043D%u0435%u0433%u043E%29.%0A//%20%u041B%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20-%20%u043F%u0435%u0440%u043A%u043B%u044E%u0447%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%0A//%20%u043B%u044E%u0431%u0430%u044F%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u0432%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u044D%u0442%u043E%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u041F%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044E%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0441%u0431%u0440%u0430%u0441%u044B%u0432%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435.%0A//%20%u041A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%3A%20Enter%20-%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20%u0421%u043F%u0435%u0446%u043A%u043B%u0430%u0432%u0438%u0448%u0430%20%u0432%u044B%u0437%u043E%u0432%u0430%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20/%20Shift+Enter%20-%20%u0441%u0431%u0440%u043E%u0441%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435.%0A//%20Alt%20+%20M%20-%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438.%20%28%u0421%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0441%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%20%u0441%u0432%u043E%u0435.%20%u0421%u043C.%20%u0432%20%u043A%u043E%u043D%u0446%u0435%20%u043A%u043E%u0434%u0430%29%0A%5B%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.workers.enabled%22%2C%20key%3A%20%27w%27%2C%20userChoice%3A%20%22false%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.indexedDB.enabled%22%2C%20key%3A%20%27d%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.storage.enabled%22%2C%20key%3A%20%27s%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22javascript.enabled%22%2C%20key%3A%20%27j%27%2C%20userChoice%3A%20%22true%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuseparator%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.override%22%2C%20key%3A%20%27u%27%2C%20userChoice%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%22%2C%20strValues%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%2C%2C%2CFirefox48/Linux%7C%7C%7CMozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%3B%20rv%3A45.0%29%20Gecko/20100101%20Firefox/45.0%2C%2C%2CFirefox45/Windows%7C%7C%7C%2C%2C%2C%u041F%u0443%u0441%u0442%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.locale%22%2C%20key%3A%20%27l%27%2C%20restart%3A%20%22%22%2C%20strValues%3A%20%22en-US%2C%2C%2CEnglish%2C%2C%2Ce%7C%7C%7Cru%2C%2C%2C%u0420%u0443%u0441%u0441%u043A%u0438%u0439%2C%2C%2Cr%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22browser.display.document_color_use%22%2C%20key%3A%20%27c%27%2C%20userChoice%3A%20%220%22%2C%20strValues%3A%20%220%2C%2C%2CAutomatic%2C%2C%2C0%7C%7C%7C1%2C%2C%2CAlways%2C%2C%2C1%7C%7C%7C2%2C%2C%2CNever%2C%2C%2C2%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22CB.TEST%22%2C%20key%3A%20%27t%27%2C%20userChoice%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%22%2C%20strValues%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%2C%2C%2CTEST1%2C%2C%2C1%7C%7C%7CC%3A%5C%5CDownloads%5C%5CTEST2%2C%2C%2CTEST2%2C%2C%2C2%22%7D%0A%5D.forEach%28function%28m%29%20%7B%0A%20%20var%20mItem%20%3D%20document.createElement%28m.nodeName%29%3B%0A%20%20var%20browserRestart%20%3D%20%27%27%3B%0A%0A%20%20if%20%28%22restart%22%20in%20m%29%20browserRestart%20%3D%20%27%20if%20%28custombuttons.confirmBox%28null%2C%20%22Restart%3F%22%2C%20%22Yes%22%2C%20%22Cancel%22%29%29%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%27%3B%0A%0A%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncontextmenu%27%2C%20%27event.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28%22key%22%20in%20m%29%20mItem.setAttribute%28%27accesskey%27%2C%20m.key%29%3B%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menuitem%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncommand%27%2C%20%27custombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%21custombuttons.getPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%29%3B%20if%20%28event.shiftKey%20%26%26%20event.keyCode%20%3D%3D%20event.DOM_VK_RETURN%29%20%7Bevent.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27class%27%2C%20%27menu-iconic%27%29%3B%0A%0A%20%20%20%20var%20subMenu%20%3D%20mItem.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0A%20%20%20%20for%20%28var%20value%20of%20m.strValues.split%28%27%7C%7C%7C%27%29%29%20%7B%0A%20%20%20%20%20%20var%20submItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20var%20smVal%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B0%5D%3B%0A%20%20%20%20%20%20var%20smValConv%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20smVal%29%3B%0A%20%20%20%20%20%20var%20smName%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B1%5D%3B%0A%20%20%20%20%20%20var%20key%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B2%5D%3B%0A%0A%20%20%20%20%20%20key%20%26%26%20submItem.setAttribute%28%27accesskey%27%2C%20key%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27type%27%2C%20%27radio%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27label%27%2C%20smName%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27tooltiptext%27%2C%20smVal%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27oncommand%27%2C%20%27try%7Bcustombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv.replace%28/%5C%5C/g%2C%20%27%5C%5C%5C%5C%27%29%20+%20%27%22%29%7D%20catch%28e%29%20%7BServices.prefs.setIntPref%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%0A%20%20%20%20%20%20subMenu.appendChild%28submItem%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20menuPopup.appendChild%28mItem%29%3B%0A%0A%20%20//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%u044B%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%0A%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0443%u044E%u0449%u0438%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0438%20%u0447%u0435%u043A%u0431%u043E%u043A%u0441%u044B%20%u0434%u043B%u044F%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%20%u043C%u0435%u043D%u044E%20%u0438%20%u043A%u043B%u0438%u043A%u0430%u0445%0A%20%20for%20%28var%20type%20of%20%5B%27command%27%2C%20%27popupshowing%27%2C%20%27contextmenu%27%5D%29%20%7B%0A%20%20%20%20addEventListener%28type%2C%20%28e%29%3D%3E%20%7B%0A%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20val%2C%20def%3B%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3D%20Services.prefs.prefHasUserValue%28m.pref%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20val%20%3D%20Services.prefs.getComplexValue%28m.pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28Services.prefs.getPrefType%28m.pref%29%20%3D%3D%2064%29%20val%20%3D%20custombuttons.getPrefs%28m.pref%29.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20val%20%3D%20custombuttons.getPrefs%28m.pref%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3F%20mItem.style.setProperty%28%27font-weight%27%2C%20%27bold%27%2C%20%27important%27%29%20%3A%20mItem.style.removeProperty%28%27font-weight%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%27menuitem%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20val%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.label%20%3D%20m.pref%20+%20%27%3B%27%20+%20val%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7Bvar%20usrChc%20%3D%20%28val.toString%28%29%20%3D%3D%3D%20m.userChoice%29%7D%20catch%28e%29%20%7BusrChc%20%3D%20false%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20usrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20usrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28subMenu%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20%28var%20smitem%20of%20subMenu.getElementsByTagName%28%27menuitem%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smval%20%3D%20smitem.getAttribute%28%27tooltiptext%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20smitem.setAttribute%28%27checked%27%2C%20%28val%20%3D%3D%3D%20smval%29%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20vname%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20vname%20%3D%20subMenu.getElementsByAttribute%28%27checked%27%2C%20%27true%27%29%5B0%5D.getAttribute%28%27label%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.prefHasUserValue%28m.pref%29%29%20vname%20%3D%20%27Default%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20vname%20%3D%20%27Other%27%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27label%27%2C%20m.pref%20+%20%27%20-%20%27%20+%20vname%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27tooltiptext%27%2C%20val%20%7C%7C%20%27This%20preferences%20has%20null%20value%20or%20does%20not%20exist.%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smUsrChc%20%3D%20%28val%20%3D%3D%3D%20m.userChoice.toString%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20smUsrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20smUsrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20hasNotUserChoice%20%3D%20menuPopup.getElementsByAttribute%28%27user-choice%27%2C%20%27false%27%29%5B0%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20custombuttons.setPrefs%28s%2C%20hasNotUserChoice%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%2C%200%29%0A%20%20%20%20%7D%2C%20false%2C%20menuPopup%29%0A%20%20%7D%0A%7D%29%3B%0A%0A//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%20%u043F%u043E%u0437%u0432%u043E%u043B%u044F%u044E%u0449%u0438%u0439%20%u0441%u0431%u0440%u043E%u0441%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0441%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20%u043F%u043E%20Shift%20+%20Enter%0A//%20%u0417%u0430%20%u043A%u043E%u0434%20%u0441%u043F%u0430%u0441%u0438%u0431%u043E%20Dumby%0AaddEventListener%28%22popupshown%22%2C%20%7B%0A%20%20handleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20this%5Be.type%5D%28e%29%3B%0A%20%20%7D%2C%0A%20%20popupshown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.addEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popuphidden%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.removeEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20e.target.parentNode.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%7D%2C%0A%20%20get%20old%28%29%20%7B%0A%20%20%20%20delete%20this.old%3B%0A%20%20%20%20this.e%20%3D%20new%20MouseEvent%28%22contextmenu%22%2C%20%7B%7D%29%3B%0A%20%20%20%20return%20this.old%20%3D%20parseInt%28Services.appinfo.platformVersion%29%20%3C%2025%3B%0A%20%20%7D%2C%0A%20%20get%20prop%28%29%20%7B%0A%20%20%20%20delete%20this.prop%3B%0A%20%20%20%20if%20%28%22key%22%20in%20KeyboardEvent.prototype%29%20this.prop%20%3D%20%22key%22%2C%20this.val%20%3D%20%22Enter%22%3B%0A%20%20%20%20else%20this.prop%20%3D%20%22keyCode%22%2C%20this.val%20%3D%20KeyboardEvent.DOM_VK_RETURN%3B%0A%20%20%20%20return%20this.prop%3B%0A%20%20%7D%2C%0A%20%20keydown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28%21e.shiftKey%20%7C%7C%20e.ctrlKey%20%7C%7C%20e.altKey%20%7C%7C%20e%5Bthis.prop%5D%20%21%3D%20this.val%29%20return%3B%0A%20%20%20%20var%20target%20%3D%20menuPopup.querySelector%28%22menu%5B_moz-menuactive%5D%3Anot%28%5Bopen%5D%29%22%29%3B%0A%20%20%20%20if%20%28%21target%29%20return%3B%0A%0A%20%20%20%20this.old%20%3F%20target.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%20%3A%20e.stopPropagation%28%29%3B%0A%20%20%20%20target.dispatchEvent%28this.e%29%3B%0A%20%20%20%20menuPopup.dispatchEvent%28this.e%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20menuPopup%29%3B%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u043E%20%u0441%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u044E%20%u043A%u043B%u0430%u0432%u0438%u0448%20Alt%20+%20M%20%28%u043D%u0435%20%u0437%u0430%u0432%u0438%u0441%u0438%u0442%20%u043E%u0442%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0440%u0430%u0441%u043A%u043B%u0430%u0434%u043A%u0438%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u044B%29%0A//%20%u041F%u043E%u0441%u043C%u043E%u0442%u0440%u0435%u0442%u044C%20%u043A%u043E%u0434%u044B%20%u043A%u043B%u0430%u0432%u0438%u0448%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0434%u0435%u0441%u044C%3A%20https%3A//developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode%23Constants_for_keyCode_value%0AaddEventListener%28%27keyup%27%2C%20%28e%29%3D%3E%20%7B%0A%20%20if%20%28e.altKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.keyCode%20%3D%3D%2077%29%20%7B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20window%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%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

Отсутствует

 

№1117725-01-2017 15:29:48

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

Re: Custom Buttons

intersk пишет

это?

Да, спасибо!

Отсутствует

 

№1117825-01-2017 16:18:54

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1222
UA: Firefox 51.0

Re: Custom Buttons

bunda1
Спасибо, так значительно лучше! :)

Отсутствует

 

№1117926-01-2017 11:04:38

tchack
Участник
 
Группа: Members
Зарегистрирован: 25-01-2017
Сообщений: 6
UA: Opera 12.1

Re: Custom Buttons

Господа, помогите, пожалуйста, сделать кнопку, при нажатии на которую нажималась бы комбинация CTRL+ALT+P.

Отсутствует

 

№1118026-01-2017 11:33:42

ifln
Участник
 
Группа: Members
Зарегистрирован: 20-09-2013
Сообщений: 235
UA: Firefox 51.0

Re: Custom Buttons

tchack
Второй код отсюда "нажимает" на Ctrl+B
Ссылка, чтобы поменять коды клавиш, есть в коде кнопки.

Отсутствует

 

№1118126-01-2017 12:53:34

tchack
Участник
 
Группа: Members
Зарегистрирован: 25-01-2017
Сообщений: 6
UA: Opera 12.1

Re: Custom Buttons

ifln пишет

tchack
Второй код отсюда "нажимает" на Ctrl+B
Ссылка, чтобы поменять коды клавиш, есть в коде кнопки.

Спасибо, но я не смог осилить.

Выделить код

Код:

// https://dxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindowUtils.idl
// https://hg.mozilla.org/mozilla-central/file/tip/widget/nsIWidget.h (~ #l1482)

QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils).sendNativeKeyEvent(
    0x00000409,  // (US)      aNativeKeyboardLayout    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
    0x42,        // (B key)   aNativeKeyCode           https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
    0x0400,      // (CTRL_L)  aModifierFlags           nsIWidget.h > Modifiers 
    "b",         //           aCharacters
    null         //           aUnmodifiedCharacters    nsIWidget.h > «... ignored on Windows.»
                 //           aObserver [optional]
);

Может кто подскажет, что конкретно надо изменить и на что, чтобы нажимались CTRL+ALT+P??

Отредактировано tchack (26-01-2017 12:54:05)

Отсутствует

 

№1118226-01-2017 14:12:29

dedfor
Участник
 
Группа: Members
Зарегистрирован: 22-12-2016
Сообщений: 62
UA: Chrome 55.0

Re: Custom Buttons

bunda1 пишет

dedfor пишет: Как извлечь текст из текстового файла?Пример:Выделить кодКод:alert( custombuttonsUtils.readFile("C:\\Users\\qwerty\\Desktop\\text.txt") );

Спасибо, но русский текст изнахрачивает, как быть?

Отсутствует

 

№1118326-01-2017 20:30:15

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

Ребята, помогите пожалуйста сделать кнопку в контектсное меню с этим кодом.
Это код для сервиса визуальных онлайн закладок https://raindrop.io/, который октрывает небольшое окно для добавления активной вкладки в выбраную папку закладок.
Сейчас для его работы, его нужно вставить в закладку вместо адреса сайта, а я бы хотел кнопку в контекстное меню.

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

Выделить код

Код:

javascript:(function(){%20var%20rspW=620,%20rspH=420,%20rspL=parseInt((screen.width/2)-(rspW/2)),%20rspT=parseInt((screen.height/2)-(rspH/2));%20window.open("http://raindrop.io/frame?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title),"raindrop-save","width="+rspW+",height="+rspH+",resizable=yes,scrollbars=yes,status=false,location=false,toolbar=false,left="+rspL+",top="+rspT)%20})();


Пробовал использовать код который добавляет ссылки в контекстное меню, вставляю вместо адреса сайта, но работать не хочет.
скрытый текст

Выделить код

Код:

((contextMenu) => {
   var array = [
      { lab: "Inoreader", url: "http://www.inoreader.com/", img: "https://www.inoreader.com/favicon.ico"},
      { lab: "Realtimeboard", url: "https://realtimeboard.com/login/", img: "https://realtimeboard.com/favicon.ico"},
      { lab: "Music", url: "http://web.meridianvk.com/", img: "http://web.meridianvk.com/favicon.ico"},
      { lab: "Cloud", url: "https://cloud.mail.ru/home/", img: "https://cloud.mail.ru/favicon.ico"},
   ]
   array.forEach(function(m,i) {  
       var mItem = document.createElement("menuitem");
       mItem.setAttribute("label", m.lab );
       mItem.setAttribute("id", "link"+i );
       mItem.setAttribute("url", m.url );
       mItem.setAttribute("class", "menuitem-iconic");
       mItem.setAttribute("image", m.img );
       mItem.addEventListener("click", openLink );
       
       contextMenu.appendChild( mItem );
   });
   function openLink(e) {
      var url = e.target.getAttribute("url");
      if (url == "about:newtab") { BrowserOpenTab(); return; };      
      e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : loadURI(url);
   };

   addDestructor(()=> array.forEach(function(m,i) contextMenu.removeChild(document.getElementById('link'+i)) ));
          
})(document.getElementById("contentAreaContextMenu") );

Отредактировано Stakhovsky (26-01-2017 20:31:11)

Отсутствует

 

№1118426-01-2017 20:47:31

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

tchack

Выделить код

Код:

QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils).sendNativeKeyEvent(
    0x00000409,  // (US)      aNativeKeyboardLayout    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
    0x50,        // (P key)   aNativeKeyCode           https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
    0x1400,      // (CTRL_L + ALT_L)  aModifierFlags   nsIWidget.h > Modifiers 
    "p",         //           aCharacters
    null         //           aUnmodifiedCharacters    nsIWidget.h > «... ignored on Windows.»
                 //           aObserver [optional]
);

Отредактировано yup (26-01-2017 20:49:50)

Отсутствует

 

№1118526-01-2017 22:06:53

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 42.0

Отсутствует

 

№1118627-01-2017 00:14:38

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

lokiju
там же написано

["Имя", function(){код_без_javascript:}],

а у меня код похоже с яваскриптом?

Выделить код

Код:

javascript:(function(){%20var%20rspW=620,%20rspH=420,%20rspL=parseInt((screen.width/2)-(rspW/2)),%20rspT=parseInt((screen.height/2)-(rspH/2));%20window.open("http://raindrop.io/frame?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title),"raindrop-save","width="+rspW+",height="+rspH+",resizable=yes,scrollbars=yes,status=false,location=false,toolbar=false,left="+rspL+",top="+rspT)%20})();

расскодировал, пробовал вставлять, не работает. Пункт в контекстном меню не появляется.

Отредактировано Stakhovsky (27-01-2017 00:17:53)

Отсутствует

 

№1118727-01-2017 00:53:24

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 42.0

Re: Custom Buttons

Stakhovsky пишет

а у меня код похоже с яваскриптом?

Это значит - убрать из кода значение "javascript:"

Stakhovsky пишет

расскодировал

Не вижу раскодированного,ибо

lex1 пишет

Если в коде вашего букмарклета встречается "%20" и т.п, то сначала его нужно раскодировать на http://www.codenet.ru/services/urlencode-urldecode/ - нижнее правое поле.

Присмотрется и чуть-чуть подумать. Ну не хотите думать - получайте готовое.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Eext%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20itemsArr%20%3D%20%5B%0A%20%20%20%20%5B%22%u0418%u0441%u043A%u0430%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u043A%u044D%u0448%u0435%20Google%22%2C%20function%28%29%7Bwindow.open%28%27http%3A//www.google.com/search%3Fq%3Dcache%3A%27+location.href%29%7D%5D%2C%0A%20%20%20%20%5B%22%u0418%u0441%u043A%u0430%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043D%u0430%20Archive.org%22%2C%20function%28%29%7Bwindow.open%28%27http%3A//web.archive.org/web/*/%27+location.href%29%7D%5D%2C%0A%20%20%20%20%2C%0A%20%20%20%20%5B%22%u0418%u0441%u043A%u0430%u0442%u044C%20%u043B%u043E%u0433%u0438%u043D%20%u043D%u0430%20BugMeNot.com%22%2C%20function%28%29%7Bwindow.open%28%27http%3A//www.bugmenot.com/view/%27+location.hostname%2C%27BugMeNot_%27+location.hostname%2C%27width%3D500%2Cheight%3D400%2Cleft%3D100%2Ctop%3D100%2Cscrollbars%3Dyes%2Clocation%3Dno%27%29%7D%5D%2C%0A%20%20%20%20%5B%22%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u0441%20%u043F%u043E%u043C%u043E%u0449%u044C%u044E%20Dr.Web%20Online%22%2C%20function%28%29%7Bwindow.open%28%27http%3A//online.drweb.com/result%3Furl%3D%27+escape%28location.href%29%2C%27DrWeb_%27+location.href%2C%27width%3D640%2Cheight%3D400%2Cleft%3D200%2Ctop%3D100%2Cscrollbars%3Dyes%2Clocation%3Dno%27%29%7D%5D%2C%0A%20%20%20%20%5B%22%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u0434%u043E%u0441%u0442%u0443%u043F%u043D%u043E%u0441%u0442%u044C%20%u0441%u0430%u0439%u0442%u0430%22%2C%20function%28%29%7Bwindow.open%28%27http%3A//downforeveryoneorjustme.com/%27+location.hostname%2C%27DownForMe_%27+location.hostname%2C%27width%3D600%2Cheight%3D400%2Cleft%3D100%2Ctop%3D100%2Cscrollbars%3Dyes%2Clocation%3Dno%27%29%7D%5D%2C%0A%20%20%20%20%2C%0A%20%20%20%20%5B%22%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0442%u0435%u043A%u0443%u0449%u0435%u043C%u0443%20%u0441%u0430%u0439%u0442%u0443%22%2C%20function%28%29%7Bvar%20getSel%3Dfunction%28w%29%7Bvar%20s%2Cd%3Dw.document%3Bif%28d.selection%29%7Bvar%20r%3Dd.selection.createRange%28%29%3Bs%3Dr%3Fr.text%3A%27%27%7Delse%7Bs%3Dd.getSelection%28%29.toString%28%29%3Bif%28%21s%29%7Bvar%20e%2Ct%3Dd.getElementsByTagName%28%27textarea%27%29%2Cu%3Dd.getElementsByTagName%28%27input%27%29%2Ci%3Dt.length%3Bwhile%28e%3D%28i%3E0%29%3Ft%5B--i%5D%3Au%5B-i--%5D%29try%7Bif%28e.offsetHeight%3E0%26%26%28s%3De.value.substring%28e.selectionStart%2Ce.selectionEnd%29%29%29break%7Dcatch%28x%29%7B%7D%7D%7D%3Bif%28%21s%29for%28var%20j%3D0%2Cf%3Bf%3Dw.frames%5Bj%5D%3Bj++%29%7Btry%7Bif%28s%3DgetSel%28f%29%29break%7Dcatch%28x%29%7B%7D%7D%3Breturn%20s%7D%3Bvar%20w%3Dwindow%2Cs%3Dw.prompt%28%27%u041F%u043E%u0438%u0441%u043A%20%u043D%u0430%20%u044D%u0442%u043E%u043C%20%u0441%u0430%u0439%u0442%u0435%20%u0441%20%u043F%u043E%u043C%u043E%u0449%u044C%u044E%20Google%27%2CgetSel%28w%29%29%3Bif%28s%29%7Bw.open%28%27http%3A//www.google.com/search%3Fas_q%3D%27+encodeURIComponent%28s%29+%27%26as_sitesearch%3D%27+w.location.hostname%29%7D%7D%5D%2C%0A%20%20%20%20%5B%22%u0421%u0433%u0435%u043D%u0435%u0440%u0438%u0440%u043E%u0432%u0430%u0442%u044C/%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%22%2C%20function%28%29%7Bvar%20getRandomPass%3Dfunction%28d%29%7Bvar%20chars%3D%27abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890%27%3Bvar%20ret%3D%27%27%2Clen%3Dd%3E%3D3%3Fd%3A3%2Cbuf%3Dnew%20Uint8Array%28len%29%3Bcrypto.getRandomValues%28buf%29%3Bfor%28var%20i%3D0%3Bi%3Clen%3Bi++%29ret+%3Dchars.charAt%28buf%5Bi%5D*chars.length%3E%3E8%29%3Breturn/%5E%28%3F%3D.*%5Cd%29%28%3F%3D.*%5Ba-z%5D%29%28%3F%3D.*%5BA-Z%5D%29.+%24/.test%28ret%29%3Fret%3AgetRandomPass%28len%29%7D%3Bvar%20findPassEle%3Dfunction%28p%29%7Bvar%20c%2Cs%3D%27%27%2Cr%3Dfalse%2Cf%3Ddocument.getElementsByTagName%28%27form%27%29%3Bfor%28var%20i%3D0%3Bi%3Cf.length%3Bi++%29%7Bc%3Df%5Bi%5D.elements%3Bfor%28var%20j%3D0%2Ce%3Be%3Dc%5Bj%5D%3Bj++%29%7Bif%28e.type%3D%3D%27password%27%29%7Br%3Dtrue%3Bif%28p%29%7Be.value%3Dp%3Be.focus%28%29%7Delse%20if%28e.value%29s+%3D%27%5Cn%5Cn%27+e.value%7D%7D%7D%3Breturn%20r%3Fs%3Anull%7D%3Bvar%20s%3DfindPassEle%28%29%3Bif%28s%29%7Balert%28%27%u041D%u0430%20%u044D%u0442%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0443%u0436%u0435%20%u0438%u043C%u0435%u0435%u0442%u0441%u044F%20%u043F%u0430%u0440%u043E%u043B%u044C%3A%27+s%29%7Delse%7BfindPassEle%28prompt%28%27%u041F%u0430%u0440%u043E%u043B%u044C%20%u0441%u0433%u0435%u043D%u0435%u0440%u0438%u0440%u043E%u0432%u0430%u043D%27+%28s%3D%3Dnull%3F%27%3A%27%3A%27.%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%3F%27%29%2CgetRandomPass%2812%29%29%29%7D%7D%5D%2C%0A%20%20%20%20%5B%22%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20Flash/Video%22%2C%20function%28%29%7Bvar%20getVideo%3Dfunction%28flashvars%2Csrc%29%7Bvar%20getLink%3Dfunction%28s%29%7Bvar%20a%3Ds.match%28/%5B%5E%5Cs%5Cx22%3D%26%3F%5D+%5C.%5B%5E%5Cs%5Cx22%3D%26%3F%5C/%5D*%28flv%7Cmp4%29/i%29%3Breturn%20a%3Fa%5B0%5D%3A%27%27%7D%3Bvar%20getQuery%3Dfunction%28s%2Cq%29%7Bvar%20a%3Ds.match%28new%20RegExp%28%27%28%5E%7C%5B%26%3F%5D%29%27+q+%27%3D%28%5B%5E%26%5D+%29%27%29%29%3Breturn%20a%3Fa%5B2%5D%3A%27%27%7D%3Bvar%20getJson%3Dfunction%28s%2Cq%29%7Bvar%20a%3Ds.match%28new%20RegExp%28%27%5Cx22%27+q+%27%5Cx22%3A%5C%5Cs*%28%5Cx22.+%3F%5Cx22%29%27%29%29%3Breturn%20a%3Feval%28a%5B1%5D%29%3A%27%27%7D%3Bvar%20getURL%3Dfunction%28f%2Cs%29%7Breturn%20f.match%28/%5E%28%5Cw+%3A%5C/%5C/%7C%5C/%7C%24%29/%29%3Ff%3As.replace%28/%5B%23%3F%5D.*%24/%2C%27%27%29.replace%28/%5B%5E%5C/%5D*%24/%2Cf%29%7D%3Bvar%20decodeURL%3Dfunction%28s%29%7Btry%7Breturn%20decodeURIComponent%28s%29%7Dcatch%28e%29%7Breturn%20unescape%28s%29%7D%7D%3Bvar%20q%3D%27%27%2Curl%3Dlocation.href%2Cflv%3DdecodeURL%28flashvars%29%3Bif%28url.indexOf%28%27youtube.com/watch%3F%27%29%21%3D-1%26%26%28q%3DgetQuery%28flv%2C%27url%27%29%29%29return%20decodeURL%28q%29+%27%26signature%3D%27+getQuery%28flv%2C%27sig%27%29+%27%26title%3D%27+encodeURIComponent%28document.title%29%3Bif%28url.indexOf%28%27video.google.com/videoplay%3F%27%29%21%3D-1%26%26%28q%3DgetQuery%28src%2C%27videoUrl%27%29%29%29return%20decodeURL%28q%29%3Bif%28url.indexOf%28%27metacafe.com/watch/%27%29%21%3D-1%26%26%28q%3DgetJson%28flv%2C%27mediaURL%27%29%29%29return%20q+%27%3F__gda__%3D%27+getJson%28flv%2C%27value%27%29%3Bif%28url.indexOf%28%27dailymotion.com/%27%29%21%3D-1%26%26%28q%3DgetJson%28flv%2C%27hqURL%27%29%7C%7CgetJson%28flv%2C%27sdURL%27%29%29%29return%20q%3Bif%28url.indexOf%28%27www.break.com/%27%29%21%3D-1%26%26%28q%3DgetQuery%28flv%2C%27videoPath%27%29%29%29return%20q+%27%3F%27+getQuery%28flv%2C%27icon%27%29%3Bif%28url.indexOf%28%27my-hit.ru/film/%27%29%21%3D-1%26%26%28q%3DgetLink%28flv%29%29%29return%20q+%27%3Fstart%3D0%26id%3D%27+getQuery%28flv%2C%27id%27%29%3Breturn%20getURL%28getLink%28flv%29%7C%7CdecodeURL%28getLink%28src%29%29%2Csrc%29%7D%3Bvar%20createLink%3Dfunction%28url%2Ctxt%29%7Bvar%20oLnk%3Ddocument.createElement%28%27a%27%29%3BoLnk.setAttribute%28%27href%27%2Curl%29%3BoLnk.setAttribute%28%27style%27%2C%27display%3Ainline%3Bmargin%3A0%3Bpadding%3A0%3Bfont%3A14px%20Times%20New%20Roman%3Btext-decoration%3Aunderline%3Btext-transform%3Anone%3B%27%29%3BoLnk.appendChild%28document.createTextNode%28txt%29%29%3Breturn%20oLnk%7D%3Bvar%20showLink%3Dfunction%28oEle%2Csrc%2Cflv%29%7Bvar%20cName%3D%27ujs_downlink%27%3Bvar%20p%3DoEle.previousSibling%3Bif%28p%26%26p.className%3D%3DcName%29%7BoEle.parentNode.removeChild%28p%29%3Breturn%7D%3Bif%28src%29%7Bvar%20oDiv%3Ddocument.createElement%28%27div%27%29%3BoDiv.setAttribute%28%27style%27%2C%27display%3Ablock%3Bposition%3Astatic%3Bfloat%3Anone%3Bmargin%3A0%3Bpadding%3A0%3Bwidth%3Aauto%3Bheight%3Aauto%3Bfont%3A14px%20Times%20New%20Roman%3Bcolor%3A%23555%3Bz-index%3A999%3B%27%29%3BoDiv.className%3DcName%3BoDiv.appendChild%28createLink%28src%2C%27Download%27%29%29%3Bvar%20v%3DgetVideo%28flv%2Csrc%29%3Bif%28v%29%7BoDiv.appendChild%28document.createTextNode%28%27%20%28%27%29%29%3BoDiv.appendChild%28createLink%28v%2C%27Video%27%29%29%3BoDiv.appendChild%28document.createTextNode%28%27%29%27%29%29%7D%3BoEle.parentNode.insertBefore%28oDiv%2CoEle%29%7D%7D%3Bvar%20getParam%3Dfunction%28e%2Cn%29%7Bvar%20v%3D%27%27%2Cr%3Dnew%20RegExp%28%27%5E%28%27+n+%27%29%24%27%2C%27i%27%29%3Bvar%20param%3De.getElementsByTagName%28%27param%27%29%3Bfor%28var%20i%3D0%2Cp%3Bp%3Dparam%5Bi%5D%3Bi++%29%7Bif%28r.test%28p.getAttribute%28%27name%27%29%29%29%7Bv%3Dp.getAttribute%28%27value%27%29%3Bbreak%7D%7D%3Breturn%20v%7D%3Bvar%20searchEmbed%3Dfunction%28w%29%7Bif%28%21w%29return%3Bvar%20obj%3Dw.document.getElementsByTagName%28%27object%27%29%3Bfor%28var%20i%3D0%2Coi%3Boi%3Dobj%5Bi%5D%3Bi++%29%7Bif%28oi.parentNode%29showLink%28oi%2Coi.getAttribute%28%27data%27%29%7C%7Coi.getAttribute%28%27src%27%29%7C%7CgetParam%28oi%2C%27movie%7Cdata%7Csrc%7Ccode%7Cfilename%7Curl%27%29%7C%7C%28oi.getElementsByTagName%28%27embed%27%29.length%26%26oi.getElementsByTagName%28%27embed%27%29%5B0%5D.getAttribute%28%27src%27%29%29%2CgetParam%28oi%2C%27flashvars%27%29%29%7D%3Bvar%20em%3Dw.document.getElementsByTagName%28%27embed%27%29%3Bfor%28var%20i%3D0%2Cei%3Bei%3Dem%5Bi%5D%3Bi++%29%7Bif%28ei.parentNode%26%26ei.parentNode.nodeName.toLowerCase%28%29%21%3D%27object%27%29showLink%28ei%2Cei.getAttribute%28%27src%27%29%2Cei.getAttribute%28%27flashvars%27%29%29%7D%3Bfor%28var%20j%3D0%2Cf%3Bf%3Dw.frames%5Bj%5D%3Bj++%29%7Btry%7Barguments.callee%28f%29%7Dcatch%28e%29%7B%7D%7D%7D%3BsearchEmbed%28window%29%7D%5D%2C%0A%20%20%20%20%2C%0A%20%20%20%20%5B%22%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%22%2C%20function%28%29%7Bvar%20meta%3D%27%27%2Cscripts%3D%27%27%2Cembed%3D%27%27%2Ciframes%3D%27%27%2Ccookies%3D%27%27%3Bvar%20corrUrl%3Dfunction%28url%29%7Bif%28%21url%29return%27%27%3Bvar%20q%3Durl.indexOf%28%27%3F%27%29+1%3Breturn%28%28q%26%26url.length%3E50%29%3Furl.slice%280%2Cq%3E50%3Fq%3A50%29+%27%5Cu2026%27%3Aurl%29+%27%5Cn%27%7D%3Bvar%20fullUrl%3Dfunction%28url%29%7Bvar%20a%3Ddocument.createElement%28%27a%27%29%3Ba.href%3Durl%3Breturn%20url%3FcorrUrl%28a.href%29%3A%27%27%7D%3Bvar%20m%3Ddocument.getElementsByTagName%28%27meta%27%29%3Bfor%28var%20i%3D0%2Cmi%3Bmi%3Dm%5Bi%5D%3Bi++%29%7Bmeta+%3D%28mi.name%3Fmi.name+%27%3A%20%27%3A%28mi.httpEquiv%3Fmi.httpEquiv+%27%3A%20%27%3A%27%27%29%29+mi.content+%27%5Cn%27%7D%3Bvar%20s%3Ddocument.getElementsByTagName%28%27script%27%29%3Bfor%28var%20i%3D0%2Csi%3Bsi%3Ds%5Bi%5D%3Bi++%29%7Bif%28si.src%29scripts+%3DcorrUrl%28si.src%29%7D%3Bvar%20e%3Ddocument.getElementsByTagName%28%27embed%27%29%3Bvar%20o%3Ddocument.getElementsByTagName%28%27object%27%29%3Bfor%28var%20i%3D0%2Cei%3Bei%3De%5Bi%5D%3Bi++%29%7Bembed+%3DfullUrl%28ei.getAttribute%28%27src%27%29%29%7D%3Bfor%28var%20i%3D0%2Coi%3Boi%3Do%5Bi%5D%3Bi++%29%7Bvar%20src%3Doi.getAttribute%28%27data%27%29%7C%7Coi.getAttribute%28%27src%27%29%7C%7Coi.getAttribute%28%27source%27%29%3Bif%28%21src%29%7Bvar%20params%3Doi.getElementsByTagName%28%27param%27%29%3Bfor%28var%20j%3D0%2Cp%3Bp%3Dparams%5Bj%5D%3Bj++%29%7Bif%28p.hasAttribute%28%27name%27%29%26%26p.getAttribute%28%27name%27%29.match%28/%5E%28movie%7Cdata%7Csrc%7Ccode%7Cfilename%7Curl%7Csource%29%24/i%29%29%7Bsrc%3Dp.getAttribute%28%27value%27%29%3Bbreak%7D%7D%7D%3Bvar%20lnk%3DfullUrl%28src%29%3Bif%28embed.indexOf%28lnk%29%3D%3D-1%29embed+%3Dlnk%7D%3Bvar%20f%3Ddocument.getElementsByTagName%28%27iframe%27%29%3Bfor%28var%20i%3D0%2Cfi%3Bfi%3Df%5Bi%5D%3Bi++%29%7Bif%28fi.src%29iframes+%3DcorrUrl%28fi.src%29%7D%3Bvar%20c%3Ddocument.cookie.split%28%27%3B%27%29%3Bfor%28var%20i%3D0%2Cci%3Bci%3Dc%5Bi%5D%3Bi++%29%7Bwhile%28ci.charAt%280%29%3D%3D%27%20%27%29ci%3Dci.slice%281%29%3Bif%28ci.length%3E40%29ci%3Dci.slice%280%2C40%29+%27%5Cu2026%27%3Bcookies+%3Dci+%27%5Cn%27%7D%3Bvar%20lastmod%3D%28Date.parse%28document.lastModified%29%3D%3D0%29%3F%27%27%3Adocument.lastModified%3Bvar%20mode%3Ddocument.getElementsByTagName%28%27HTmL%27%29.length%3D%3D0%3F%27Really%20strict%27%3A%28document.compatMode%3D%3D%27CSS1Compat%27%3F%27Normal%20strict%27%3A%27Quirks%27%29%3Bvar%20title%3Ddocument.title%7C%7C%28document.getElementsByTagName%28%27title%27%29%5B0%5D%26%26document.getElementsByTagName%28%27title%27%29%5B0%5D.text%29%7C%7C%27%27%3Bif%28meta%29meta%3D%27%5CnMeta-%u0434%u0430%u043D%u043D%u044B%u0435%3A%5Cn%27+meta%3Bif%28scripts%29scripts%3D%27%5Cn%u0421%u043A%u0440%u0438%u043F%u0442%u044B%3A%5Cn%27+scripts%3Bif%28embed%29embed%3D%27%5Cn%u0412%u0441%u0442%u0440%u043E%u0435%u043D%u043D%u044B%u0435%20%u043E%u0431%u044A%u0435%u043A%u0442%u044B%3A%5Cn%27+embed%3Bif%28iframes%29iframes%3D%27%5CnIframes%3A%5Cn%27+iframes%3Bif%28cookies%29cookies%3D%27%5CnCookies%3A%5Cn%27+cookies%3Balert%28%27%u0418%u0434%u0435%u043D%u0442%u0438%u0444%u0438%u043A%u0430%u0446%u0438%u044F%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%3A%20%27+navigator.userAgent+%27%5Cn%5Cn%u0417%u0430%u0433%u043E%u043B%u043E%u0432%u043E%u043A%3A%20%27+title+%27%5Cn%5Cn%u0410%u0434%u0440%u0435%u0441%3A%20%27+location.href+%27%5Cn%5Cn%u0420%u0435%u0444%u0435%u0440%u0440%u0435%u0440%3A%20%27+document.referrer+%27%5Cn%5Cn%u0414%u0430%u0442%u0430%20%u043F%u043E%u0441%u043B%u0435%u0434%u043D%u0435%u0433%u043E%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%3A%20%27+lastmod+%27%5Cn%5Cn%u0420%u0435%u0436%u0438%u043C%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%3A%20%27+mode+%27%20mode%5Cn%27+meta+scripts+embed+iframes+cookies%29%7D%5D%2C%0A%20%20%20%20%5B%22%u0418%u0441%u0445%u043E%u0434%u043D%u044B%u0439%20%u043A%u043E%u0434%20%28snapshot%29%22%2C%20function%28%29%7Bvar%20q%3D%27%20%20%27%2CC%3D%7Bimg%3A1%2Cbr%3A1%2Clink%3A1%2Cinput%3A1%2Chr%3A1%2Cmeta%3A1%7D%2Cu%3Dfalse%2Cv%3D0%2CD%3D1%2Cg%3Dwindow.document%2Cm%3Dwindow.location%2Cw%3D%27resizable%3Dyes%2Cscrollbars%3Dyes%2Clocation%3Dno%27%2Ch%3D%27%3C/span%3E%3C/li%3E%27%3Bvar%20x%3Dfunction%28a%29%7Breturn%27%3Cspan%20class%3D%5C%27tag%5C%27%3E%26lt%3B%27+a+%27%27%7D%3Bvar%20y%3Dfunction%28a%29%7Breturn%28a%3F%27/%27%3A%27%27%29+%27%26gt%3B%3C/span%3E%27%7D%3Bvar%20z%3Dfunction%28a%2Cb%29%7Bif%28b%7C%7CC%5Ba.toLowerCase%28%29%5D%29return%27%27%3Breturn%27%3Cspan%20class%3D%5C%27tag%5C%27%3E%26lt%3B/%27+a+%27%26gt%3B%3C/span%3E%27%7D%3Bvar%20j%3Dfunction%28%29%7Bvar%20a%3Dv.toString%28%29%3Bwhile%28a.length%3C3%29a%3D%270%27+a%3Breturn%27%3Cli%20class%3D%5C%27line%27+%28D%26%26%28%28v++%29%261%29%3F%27%20dark%5C%27%27%3A%27%5C%27%27%29+%27%3E%3Cspan%3E%27%7D%3Bvar%20n%3Dfunction%28a%29%7Breturn%20a.replace%28/%3C/g%2C%27%26lt%3B%27%29.replace%28/%3E/g%2C%27%26gt%3B%27%29%7D%3Bvar%20E%3Dfunction%28a%29%7Bvar%20b%3Da.doctype%2Cc%3D%27%27%3Bif%28b%29%7Bc%3Dj%28%29+x%28%27%21DOCTYPE%27%29+%27%20%3Cspan%20class%3D%5C%27attrDoc%5C%27%3E%27+b.nodeName+%28b.publicId%3F%27%20PUBLIC%20%5C%27%27+b.publicId+%27%5C%27%27%3A%27%27%29+%28b.systemId%3F%27%3C/span%3E%3C/span%3E%27+h+j%28%29+%27%3Cspan%20class%3D%5C%27tag%5C%27%3E%3Cspan%20class%3D%5C%27attrDoc%5C%27%3E%27+q+%27%5C%27%27+b.systemId+%27%5C%27%27%3A%27%27%29+%27%3C/span%3E%27+y%28%29+h%7Dreturn%20c%7D%3Bvar%20F%3Dfunction%28a%29%7Bvar%20b%3Da.attributes%2Cc%3Dnull%2Cd%3D%27%27%3Bfor%28var%20f%3D0%3Bc%3Db%5Bf%5D%3Bf++%29%7Bif%28c.specified%26%26c.value%29%7Bd+%3D%27%20%3Cspan%20class%3D%5C%27attrTitle%5C%27%3E%27+c.name+%27%3C/span%3E%3D%3Cspan%20class%3D%5C%27attrValue%5C%27%3E%5Cx22%27+n%28c.value.replace%28/%5Ct/g%2Cq%29%29+%27%5Cx22%3C/span%3E%20%27%7D%7Dreturn%20d%7D%3Bvar%20r%3Dfunction%28a%29%7Breturn%20n%28a.nodeValue.replace%28/%5B%5Cn%5Ct%5Cr%5Cu00A0%5D+%20*/g%2C%27%27%29.replace%28/%20+/g%2C%27%20%27%29%29%7D%3Bvar%20G%3Dfunction%28a%29%7Bvar%20b%3D0%2Cc%3D%27%27%3Bwhile%28b%3Ca%29%7Bc+%3Dq%3Bb++%7Dreturn%20c%7D%3Bvar%20A%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3D%27%27%2Cf%3DG%28b++%29%3Bswitch%28a.nodeType%29%7Bcase%201%3A%7Bvar%20i%3Da.childNodes%2Ck%3Dnull%3Bvar%20s%3D%28i.length%3D%3D0%29%7C%7C%28i.length%3D%3D1%26%26i%5B0%5D.nodeType%3D%3D3%29%3Bvar%20t%3Du%26%26i.length%3D%3D0%3Bvar%20l%3Dj%28%29+f+x%28a.nodeName%29+F%28a%29+y%28t%29%3Bif%28%21s%29l+%3Dh%3Bfor%28var%20B%3D0%3Bk%3Di%5BB%5D%3BB++%29%7Bl+%3DA%28k%2Cb%2C%21s%26%26k.nodeType%3D%3D3%29%7Dif%28s%29%7Bl+%3D%28a.nodeName.toLowerCase%28%29%3D%3D%27textarea%27%3Fn%28a.value%29%3A%27%27%29+z%28a.nodeName%2Ct%29+h%7Delse%7Bl+%3Dj%28%29+f+z%28a.nodeName%2Ct%29+h%7Dreturn%20l%7Dcase%203%3A%7Bif%28%28d%3Dr%28a%29%29%26%26c%29%7Breturn%20j%28%29+f+d+h%7Delse%7Breturn%20d%7D%7Dcase%204%3A%7Bd%3Dr%28a%29%3Breturn%20j%28%29+f+%27%3Cspan%20class%3D%5C%27cdata%5C%27%3E%26lt%3B%21%5BCDATA%5B%3C/span%3E%27+d+%27%3Cspan%20class%3D%5C%27cdata%5C%27%3E%5D%5D%26gt%3B%3C/span%3E%27+h%7Dcase%208%3A%7Bd%3Dr%28a%29%3Breturn%20j%28%29+f+%27%3Cspan%20class%3D%5C%27comment%5C%27%3E%26lt%3B%21--%27+d+%27--%26gt%3B%3C/span%3E%27+h%7D%7Dreturn%20a.nodeType%7D%3Bvar%20H%3Dfunction%28a%29%7Bvar%20b%2Cc%3D%27%27%3Bif%28a%29%7Bvar%20d%3Da.getSelection%28%29.getRangeAt%280%29%2Cf%3Dd.commonAncestorContainer%3Bif%28f.nodeType%3D%3D3%7C%7Cf.nodeType%3D%3D4%29f%3Df.parentNode%3Bb%3Df.cloneNode%28false%29%3Bb.appendChild%28d.cloneContents%28%29%29%3Bvar%20i%3Dd.startContainer%2Ck%3Dd.endContainer%3Bif%28i%21%3Df.firstChild%7C%7C%28i.nodeType%3D%3D3%26%26d.startOffset%21%3D0%29%29b.insertBefore%28g.createTextNode%28%27%5Cu2026%27%29%2Cb.firstChild%29%3Bif%28k%21%3Df.lastChild%7C%7C%28k.nodeType%3D%3D3%26%26d.endOffset%21%3Dk.nodeValue.length%29%29b.appendChild%28g.createTextNode%28%27%5Cu2026%27%29%29%7Delse%7Bc%3DE%28g%29%3Bb%3Dg.documentElement%7D%3Bc+%3DA%28b%2C0%29%3Breturn%20c%7D%3Bvar%20I%3Dfunction%28a%29%7Bif%28a%26%26a.getSelection%29%7Bif%28a.getSelection%28%29.toString%28%29%29return%20a%3Bfor%28var%20b%3D0%2Cc%2Cd%3Bc%3Da.frames%5Bb%5D%3Bb++%29%7Btry%7Bif%28d%3Darguments.callee%28c%29%29return%20d%7Dcatch%28e%29%7B%7D%7D%7D%7D%3Bvar%20o%3DI%28window%29%3Bif%28o%29%7Bg%3Do.document%3Bm%3Do.location%3Bw+%3D%27%2Cwidth%3D800%2Cheight%3D500%2Cleft%3D100%2Ctop%3D100%27%7D%3Bu%3D/%5Ba-z%5D/.test%28g.documentElement.nodeName%29%3Bvar%20J%3D%27%3C%21DOCTYPE%20html%20PUBLIC%3E%3Chtml%3E%3Chead%3E%3Ctitle%3ESnapshot%3A%20%27+%28%28g.getElementsByTagName%28%27title%27%29.length%26%26n%28g.getElementsByTagName%28%27title%27%29%5B0%5D.text%29%29%7C%7C%28m.protocol+%27//%27+m.host+m.pathname%29%29+%27%3C/title%3E%3Cstyle%20type%3D%5C%27text/css%5C%27%3Ebody%7Bpadding%3A0%205px%3Bmargin%3A0%3Bfont-family%3Asans-serif%3Bfont-size%3A.7em%3Bbackground-color%3A%23FFF%3Bcolor%3A%23000%3B%7D%23content%7Bwhite-space%3Apre-wrap%7Dol%7Bcolor%3A%23999%3B%7Dspan%7Bcolor%3A%23000%7D.tag%7Bcolor%3A%2305F%7D.attrTitle%7Bcolor%3A%23E00%7D.attrValue%7Bcolor%3A%23C0C%7D.attrDoc%7Bcolor%3A%23800080%7D.comment%7Bcolor%3A%23008000%7D.cdata%7Bcolor%3A%2363D%7D.line%7Bmargin%3A0%3Bpadding%3A0%7D.dark%7Bbackground-color%3A%23FAFAFA%7D%3C/style%3E%3C/head%3E%3Cbody%3E%3Col%20id%3D%5C%27content%5C%27%3E%27+H%28o%29+%27%3C/ol%3E%3C/body%3E%3C/html%3E%27%3Bvar%20p%3Dwindow.open%28%27about%3Ablank%27%2C%27_blank%27%2Cw%29%3Bp.document.write%28J%29%3Bp.document.onkeydown%3Dfunction%28a%29%7Bif%28a.keyCode%3D%3D27%29p.close%28%29%7D%3Bp.document.close%28%29%7D%5D%2C%0A%20%20%20%20%2C%0A%20%20%20%20%5B%22%u0428%u0430%u0445%u043C%u0430%u0442%u044B%22%2C%20function%28%29%7Bwindow.open%28%27data%3Atext/html%3Bbase64%2CPGh0bWw+PGhlYWQ+PHRpdGxlPkNoZXNzPC90aXRsZT48bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9Ik9zY2FyIFRvbGVkbyBHLiI+PG1ldGEgbmFtZT0ic2l0ZSIgY29udGVudD0iaHR0cDovL25hbm9jaGVzcy4xMTBtYi5jb20vY2hlc3M0Lmh0bWwiPjwvaGVhZD48Ym9keT48c2NyaXB0PnZhciBCLGkseSx1LGIsST1bXSxHPTEyMCx4PTEwLHo9MTUsTT0xZTQsbD1bNSwzLDQsNiwyLDQsMyw1LDEsMSwxLDEsMSwxLDEsMSw5LDksOSw5LDksOSw5LDksMTMsMTEsMTIsMTQsMTAsMTIsMTEsMTMsMCw5OSwwLDMwNiwyOTcsNDk1LDg0NiwtMSwwLDEsMiwyLDEsMCwtMSwtMSwxLC0xMCwxMCwtMTEsLTksOSwxMSwxMCwyMCwtOSwtMTEsLTEwLC0yMCwtMjEsLTE5LC0xMiwtOCw4LDEyLDE5LDIxXTtmdW5jdGlvbiBYKHcsYyxoLGUsUyxzKXt2YXIgdCxvLEwsRSxkLE89ZSxOPS1NKk0sSz03OC1oPDx4LHAsZyxuLG0sQSxxLHIsQyxKLGE9eT8teDp4O3lePTg7RysrO2Q9d3x8cyYmcz49aCYmWCgwLDAsMCwyMSwwLDApPk07ZG97aWYobz1JW3A9T10pe3E9byZ6Xnk7aWYocTw3KXtBPXEtLSYyPzg6NDtDPW8tOSZ6P1s1Myw0Nyw2MSw1MSw0Nyw0N11bcV06NTc7ZG97cj1JW3ArPWxbQ11dO2lmKCF3fHA9PXcpe2c9cXxwK2EtUz8wOlM7aWYoIXImKCEhcXxBPDN8fCEhZyl8fChyKzEmel55KT45JiZxfEE+Mil7aWYobT0hKHItMiY3KSlyZXR1cm4geV49OCxJW0ctLV09TyxLO0o9bj1vJno7RT1JW3AtYV0mejt0PXF8RS03P246KG4rPTIsNl55KTt3aGlsZShuPD10KXtMPXI/bFtyJjd8MzJdLWgtcTowO2lmKHMpTCs9KDEtcT9sWyhwLXAleCkveCszN10tbFsoTy1PJXgpL3grMzddK2xbcCV4KzM4XSoocT8xOjIpLWxbTyV4KzM4XSsobyYxNikvMjohIW0qOSkrKCFxPyEoSVtwLTFdXm4pKyEoSVtwKzFdXm4pK2xbbiY3fDMyXS05OSshIWcqOTkrKEE8Mik6MCkrIShFXnleOSk7aWYocz5ofHwxPHMmcz09aCYmTD56fGQpe0lbcF09bixJW09dPW0/KElbZ109SVttXSxJW21dPTApOmc/SVtnXT0wOjA7TC09WChzPmh8ZD8wOnAsTC1OLGgrMSxJW0crMV0sSj1xfEE+MT8wOnAscyk7aWYoIShofHxzLTF8Qi1PfGktbnxwLWJ8TDwtTSkpcmV0dXJuIFcoKSxHLS0sdT1KO0o9cS0xfEE8N3x8bXx8IXN8ZHxyfG88enx8WCgwLDAsMCwyMSwwLDApPk07SVtPXT1vO0lbcF09cjttPyhJW21dPUlbZ10sSVtnXT0wKTpnP0lbZ109OV55OjB9aWYoTD5OfHxzPjEmJkw9PU4mJiFoJiZNYXRoLnJhbmRvbSgpPC41KXtJW0ddPU87aWYocz4xKXtpZihoJiZjLUw8MClyZXR1cm4geV49OCxHLS0sTDtpZighaClpPW4sQj1PLGI9cH1OPUx9bis9Snx8KGc9cCxtPXA8Tz9nLTM6ZysyLElbbV08enxJW20rTy1wXXx8SVtwKz1wLU9dKT8xOjB9fX19d2hpbGUoIXImcT4yfHwocD1PLHF8QT4yfG8+eiYhciYmKytDKi0tQSkpfX19d2hpbGUoKytPPjk4P089MjA6ZS1PKTtyZXR1cm4geV49OCxHLS0sTitNKk0mJk4+LUsrMTkyNHxkP046MH1CPWk9eT11PTA7d2hpbGUoQisrPDEyMClJW0ItMV09QiV4P0IveCV4PDJ8QiV4PDI/NzpCL3gmND8wOmxbaSsrXXwxNjo3O2ZvcihhPSI8dGFibGUgY2VsbHNwYWNpbmc9MCBhbGlnbj1jZW50ZXIgYm9yZGVyPTA+IixCPTA7Qjw4O0IrKylmb3IoYSs9Ijx0cj4iLGk9MjE7aTwyOTtpKyspYSs9Ijx0ZCB3aWR0aD02MCBoZWlnaHQ9NjAgb25jbGljaz1ZKCIrKEIqeCtpKSsiKSBpZD1vIisoQip4K2kpKyIgc3R5bGU9J2xpbmUtaGVpZ2h0OjUwcHg7Zm9udC1zaXplOjUwcHg7Ym9yZGVyOjJweCBzb2xpZCAiKyIjZTBlMGYwJyBiZ2NvbG9yPSMiKyhpK0ImMT8iZjBmIjoiYzBjIikrIjBmMCBhbGlnbj1jZW50ZXI+IjthKz0iPHRyPjx0ZCBjb2xzcGFuPTggYWxpZ249Y2VudGVyPjxzZWxlY3QgaWQ9dCBzdHlsZT0nZm9udC1zaXplOjIwcHgnPjxvcHRpb24+JiM5ODE5OzxvcHRpb24+Ijtkb2N1bWVudC53cml0ZShhKyImIzk4MjA7PG9wdGlvbj4mIzk4MjE7PG9wdGlvbj4mIzk4MjI7PC9zZWxlY3Q+PC90YWJsZT4iKTtmdW5jdGlvbiBXKCl7Qj1iO2ZvcihwPTIxO3A8OTk7cCs9cCV4LTg/MTozKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibyIrcCkuaW5uZXJIVE1MPSJceGEwXHUyNjVmXHUyNjVhXHUyNjVlXHUyNjVkXHUyNjVjXHUyNjViICBcdTI2NTlcdTI2NTRcdTI2NThcdTI2NTdcdTI2NTZcdTI2NTUiLmNoYXJBdChJW3BdJnopO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvIitwKS5zdHlsZS5ib3JkZXJDb2xvcj1wPT1CPyJyZWQiOiIjZTBlMGYwIn19VygpO2Z1bmN0aW9uIFkocyl7aT0oSVtzXV55KSZ6O2lmKGk+OCl7Yj1zO1coKX1lbHNlIGlmKEImJmk8OSl7Yj1zO2k9SVtCXSZ6O2lmKChpJjcpPT0xJihiPDI5fGI+OTApKWk9MTQtZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInQiKS5zZWxlY3RlZEluZGV4Xnk7WCgwLDAsMCwyMSx1LDEpO2lmKHkpd2luZG93LnNldFRpbWVvdXQoIlgoMCwwLDAsMjEsdSwyLypwbHkqLyksWCgwLDAsMCwyMSx1LDEpIiwyNTApfX08L3NjcmlwdD48L2JvZHk+PC9odG1sPgo%3D%27%2C%27_blank%27%2C%27width%3D600%2Cheight%3D550%2Cleft%3D200%2Ctop%3D100%27%29%7D%5D%2C%0A%20%20%20%20%5B%22All%20in%20One%20Bookmark%20Manager%22%2C%20function%28%29%7B%20var%20rspW%3D620%2C%20rspH%3D420%2C%20rspL%3DparseInt%28%28screen.width/2%29-%28rspW/2%29%29%2C%20rspT%3DparseInt%28%28screen.height/2%29-%28rspH/2%29%29%3B%20window.open%28%22http%3A//raindrop.io/frame%3Furl%3D%22+encodeURIComponent%28window.location.href%29+%22%26title%3D%22+encodeURIComponent%28document.title%29%2C%22raindrop-save%22%2C%22width%3D%22+rspW+%22%2Cheight%3D%22+rspH+%22%2Cresizable%3Dyes%2Cscrollbars%3Dyes%2Cstatus%3Dfalse%2Clocation%3Dfalse%2Ctoolbar%3Dfalse%2Cleft%3D%22+rspL+%22%2Ctop%3D%22+rspT%29%20%7D%5D%0A%5D%3B%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20nextEleMenu%20%3D%20contextMenu.children%5B%27context-inspect%27%5D%3B%0A%0Avar%20menuId%20%3D%20%22context-ext-addon%22%3B%0Avar%20menuItem%2C%20menuPopup%2C%20menu%20%3D%20document.getElementById%28menuId%29%3B%0Aif%20%28menu%29%20%7B%0A%20%20%20%20contextMenu.removeChild%28menu%29%3B%0A%7D%3B%0AmenuPopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0Amenu%20%3D%20document.createElement%28%22menu%22%29%3B%0Amenu.setAttribute%28%22id%22%2C%20menuId%29%3B%0Amenu.setAttribute%28%22label%22%2C%20%22%u0414%u043E%u043F%u043E%u043B%u043D%u0438%u0442%u0435%u043B%u044C%u043D%u043E%22%29%3B%0A%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20itemsArr.length%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28itemsArr%5Bi%5D%29%20%7B%0A%20%20%20%20%20%20%20%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20itemsArr%5Bi%5D%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20%28function%28f%29%7Breturn%20function%28%29%7Bcontent.location.href%20%3D%20%22javascript%3A%28%22%20+%20encodeURI%28f%29%20+%20%22%29%28%29%22%7D%7D%29%28itemsArr%5Bi%5D%5B1%5D.toString%28%29%29%2C%20false%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20menuItem%20%3D%20document.createElement%28%22menuseparator%22%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%7D%3B%0Amenu.appendChild%28menuPopup%29%3B%0AcontextMenu.insertBefore%28menu%2C%20nextEleMenu%29%3B%0A%0AaddDestructor%28function%28%29%7BcontextMenu.removeChild%28menu%29%7D%29%3B%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

Отсутствует

 

№1118827-01-2017 01:25:47

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

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

Добавлено 27-01-2017 01:30:19
lokiju
А вы бы не могли еще пожалуйста подсказать как убрать подменю, т.е. что бы пункты сразу были в контекстном меню, а не в выпадающем списке.

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

Выделить код

Код:

//RAINDROP в контекстном меню .....................

var itemsArr = [
    ["RAIN", function(){ var rspW=620, rspH=420, rspL=parseInt((screen.width/2)-(rspW/2)), rspT=parseInt((screen.height/2)-(rspH/2)); window.open("http://raindrop.io/frame?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title),"raindrop-save","width="+rspW+",height="+rspH+",resizable=yes,scrollbars=yes,status=false,location=false,toolbar=false,left="+rspL+",top="+rspT) }]
];
var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = contextMenu.children['context-inspect'];

var menuId = "context-ext-addon";
var menuItem, menuPopup, menu = document.getElementById(menuId);
if (menu) {
    contextMenu.removeChild(menu);
};
menuPopup = document.createElement("menupopup");
menu = document.createElement("menu");
menu.setAttribute("id", menuId);
menu.setAttribute("label", "Дополнительно");

for (var i = 0; i < itemsArr.length; i++) {
    if (itemsArr[i]) {
        menuItem = document.createElement("menuitem");
        menuItem.setAttribute("label", itemsArr[i][0]);
        menuItem.addEventListener("command", (function(f){return function(){content.location.href = "javascript:(" + encodeURI(f) + ")()"}})(itemsArr[i][1].toString()), false);
    } else {
        menuItem = document.createElement("menuseparator");
    };
    menuPopup.appendChild(menuItem);
};
menu.appendChild(menuPopup);
contextMenu.insertBefore(menu, nextEleMenu);

addDestructor(function(){contextMenu.removeChild(menu)});

Отредактировано Stakhovsky (27-01-2017 03:01:21)

Отсутствует

 

№1118927-01-2017 05:37:41

Barsukk
Участник
 
Группа: Members
Зарегистрирован: 17-06-2011
Сообщений: 32
UA: Firefox 51.0

Re: Custom Buttons

В FF51 перестала работать кнопка URL Corrector, которая меняет раскладку уже набранного текста. Что нужно поправить? Очень нужная кнопочка была

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

Выделить код

Код:

this.noSelUseFullText = true;
this.convTableForward = {
    "\"": "@",
    ":": "^",
    ";": "$",
    "?": "&",
    ",": "?",
    "/": "|",
    ".": "/",
    "э": "'",
    "б": ",",
    "ю": ".",
    "Ж": ":",
    "ж": ";",
    "Б": "<",
    "Ю": ">",
    "Э": "\"",
    "х": "[",
    "ъ": "]",
    "ё": "`",
    "Х": "{",
    "Ъ": "}",
    "Ё": "~",
    "№": "#",
    "Ф": "A",
    "ф": "a",
    "И": "B",
    "и": "b",
    "С": "C",
    "с": "c",
    "В": "D",
    "в": "d",
    "У": "E",
    "у": "e",
    "А": "F",
    "а": "f",
    "П": "G",
    "п": "g",
    "Р": "H",
    "р": "h",
    "Ш": "I",
    "ш": "i",
    "О": "J",
    "о": "j",
    "Л": "K",
    "л": "k",
    "Д": "L",
    "д": "l",
    "Ь": "M",
    "ь": "m",
    "Т": "N",
    "т": "n",
    "Щ": "O",
    "щ": "o",
    "З": "P",
    "з": "p",
    "Й": "Q",
    "й": "q",
    "К": "R",
    "к": "r",
    "Ы": "S",
    "ы": "s",
    "Е": "T",
    "е": "t",
    "Г": "U",
    "г": "u",
    "М": "V",
    "м": "v",
    "Ц": "W",
    "ц": "w",
    "Ч": "X",
    "ч": "x",
    "Н": "Y",
    "н": "y",
    "Я": "Z",
    "я": "z",
    __proto__: null
};

this.convTableBackward = { __proto__: null };
for(var c in this.convTableForward)
    this.convTableBackward[this.convTableForward[c]] = c;

this.insertText = function(ta, text, noFocus) {
    var editor = ta.QueryInterface(Components.interfaces.nsIDOMNSEditableElement)
        .editor
        .QueryInterface(Components.interfaces.nsIPlaintextEditor);
    if(editor.flags & editor.eEditorReadonlyMask)
        return;

    var sTop = ta.scrollTop;
    var sHeight = ta.scrollHeight;
    var sLeft = ta.scrollLeft;
    // var sWidth = ta.scrollWidth;

    if(noFocus) {
        var val = ta.value;
        var ss = ta.selectionStart;
        ta.value = val.substring(0, ss) + text + val.substring(ta.selectionEnd);
        var se = ss + text.length;
        ta.selectionStart = se;
        ta.selectionEnd = se;
    }
    else {

        if(text)
            editor.insertText(text);
        else
            editor.deleteSelection(0);
    }

    ta.scrollTop = sTop + (ta.scrollHeight - sHeight);
    ta.scrollLeft = sLeft; // + (ta.scrollWidth - sWidth);
};
this.inPrimaryLayout = function(s) {
    var c;
    for(var i = 0, l = s.length; i < l; i++) {
        c = s.charAt(i);
        if(c in this.convTableForward)
            return true;
        if(c in this.convTableBackward)
            return false;
    }
    return false;
};
this.switchKeybLayout = function(convTable, s) {
    var r = "", c;
    for(var i = 0, l = s.length; i < l; i++) {
        c = s.charAt(i);
        r += c in convTable ? convTable[c] : c;
    }
    return r;
};
this.switchSelKeybLayout = function(s) {
    try {
        var ta = document.commandDispatcher.focusedElement;
        var val = ta.value;
        var sel = val.substring(ta.selectionStart, ta.selectionEnd);
    }
    catch(e) {
        return;
    }
    if(this.noSelUseFullText && !sel) {
        ta.selectionStart = 0;
        ta.selectionEnd = val.length;
        sel = val;
    }
    if(!sel)
        return;

    sel = this.switchKeybLayout(
        this.inPrimaryLayout(sel) ? this.convTableForward : this.convTableBackward,
        sel
    );
    this.insertText(ta, sel);
};


Так же больше не работает кнопочка Case Change, меняющая  прописные на заглавные буквы и наоборот в разных сочетаниях

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

Выделить код

Код:

var Msg = createMsg(this.label);
var de = createDebug(this);
this.leftclick   = function(evt){
  this.doLeft( evt );
}

this.midclick    = function(evt){
  this.doMid( evt );
}

this.rightclick  = function(evt){
  this.doRight( evt );
}

this.setAttribute( 'onclick', 'custombuttons.gQuot.mHandler( event, this )' ); 

this.intro = {
  theBox: {},
  startPos: 0,
  endPos: 0,
  oPosition: 0,
  oHeight: 0,
  text: '',
  nHeight: 0,
  Highlight: '',
  eBlock: '',
  cBoard: '',
  n: '',
  nLen: 0,
  arr: [],
  initMeth: function( oBtn ){
    with( this ) {
      theBox  = document.commandDispatcher.focusedElement;
      if ( theBox ) {
        startPos = theBox.selectionStart;
        endPos = theBox.selectionEnd;
        oPosition = theBox.scrollTop;
        oHeight = theBox.scrollHeight;
        text = theBox.value.substring(0,startPos);
        nHeight = theBox.scrollHeight - oHeight;
        Highlight = theBox.value.substring(startPos, endPos);
        eBlock = theBox.value.substring(endPos, theBox.value.length);
        n = '';
        return true;
      } 
    } 
    return false;
  } 
};

this.doLeft = function( e ) 
{
  if ( !this.intro.initMeth( this ) ) {
    return;
  } 
  var x = this.intro;
  with(x){
    text += Highlight.toUpperCase();
    nLen = text.length;
    text += eBlock;
    theBox.value = text;
    theBox.selectionStart = theBox.selectionEnd = nLen ;
    theBox.scrollTop = oPosition + nHeight;
  }
}; 

this.doMid = function( e )
{
  if ( !this.intro.initMeth( this ) ) {
    return;
  }
  var x = this.intro;
  with(x){
    text += Highlight.substr( 0, 1 ).toUpperCase();
    text += Highlight.substr( 1 ).toLowerCase();
    nLen = text.length;
    text += eBlock;
    theBox.value = text;
    theBox.selectionStart = theBox.selectionEnd = nLen ;
    theBox.scrollTop = oPosition + nHeight;
  }
}; 

this.doRight = function( e ) 
{
  if ( !this.intro.initMeth( this ) ) {
    return;
  } 
  var x = this.intro;
  with(x){
    text += Highlight.toLowerCase();
    nLen = text.length;
    text += eBlock;
    theBox.value = text;
    theBox.selectionStart = theBox.selectionEnd = nLen ;
    theBox.scrollTop = oPosition + nHeight;
  }
};

this.setAttribute('onmouseover', 'custombuttons.ButtonBrt(event);' );
this.setAttribute('onmouseout', 'custombuttons.ButtonDim(event);' );
this.tooltipText = "Заменить буквы в выделенном на\n ЛКМ = ЗАГЛАВНЫЕ \n СКМ = Первая буква заглавная  \n ПКМ = строчные ";

Отсутствует

 

№1119027-01-2017 08:43:38

intersk
Участник
 
Группа: Members
Зарегистрирован: 20-06-2013
Сообщений: 104
UA: Firefox 51.0

Re: Custom Buttons

intersk пишет

нужна кнопка удаляющая куки для текущего сайта

ещё актуально

Отсутствует

 

№1119127-01-2017 10:37:40

tchack
Участник
 
Группа: Members
Зарегистрирован: 25-01-2017
Сообщений: 6
UA: Opera 12.1

Re: Custom Buttons

yup пишет

tchackВыделить кодКод:QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils).sendNativeKeyEvent(
    0x00000409,  // (US)      aNativeKeyboardLayout    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\
    0x50,        // (P key)   aNativeKeyCode           https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx
    0x1400,      // (CTRL_L + ALT_L)  aModifierFlags   nsIWidget.h > Modifiers
    "p",         //           aCharacters
    null         //           aUnmodifiedCharacters    nsIWidget.h > «... ignored on Windows.»
                 //           aObserver [optional]
);
                    Отредактировано yup (Вчера 20:49:50)

Блин, у меня CTRL+ALT+P в Opera 12 вставляет пароль из Keepass, а тут почему-то не срабатывает. Может что-то не хватает??

Отредактировано tchack (27-01-2017 10:38:05)

Отсутствует

 

№1119227-01-2017 11:10:00

yup
Участник
 
Группа: Members
Зарегистрирован: 15-04-2016
Сообщений: 1090
UA: Seamonkey 2.40

Re: Custom Buttons

tchack пишет

Блин, у меня CTRL+ALT+P в Opera 12 вставляет пароль из Keepass, а тут почему-то не срабатывает. Может что-то не хватает??

А с клавиатуры эта комбинация работает?
Может, просто конфликт назначений? А то ведь, например, и Private Tab CTRL+ALT+P под себя гребёт.
(Создал на пробу кнопку с обсуждаемым кодом. При её нажатии именно Private Tab срабатывает.)

И второй вопрос: текст этот в кнопке куда вставили - в инициализацию или в код?

Ну и, наконец: KeePass - это же автономное приложение. Клавиатурное событие, программно созданное внутри Firefox, до него никак не доберётся. Для этого в Firefox ещё спец. дополнение установлено должно быть. Оно наличествует?

Отредактировано yup (27-01-2017 11:25:11)

Отсутствует

 

№1119327-01-2017 12:24:42

bucefal82
Участник
 
Группа: Members
Зарегистрирован: 27-01-2017
Сообщений: 3
UA: Firefox 50.0

Re: Custom Buttons

Здравствуйте ранньше на форуме были кнопки
2017012713_8759740_24931360.png
закрыть вкладки слева, закрыть все вкладки,закрыть вкладки справа
сейчас не могу найти, подскажите где искать.

Отредактировано bucefal82 (27-01-2017 13:41:39)

Отсутствует

 

№1119427-01-2017 12:38:13

LittleMontana
Участник
 
Группа: Members
Зарегистрирован: 16-11-2013
Сообщений: 214
UA: Firefox 51.0

Re: Custom Buttons

intersk пишет

ещё актуально

Выделить код

Код:

/*CODE*/var win = Services.wm.getMostRecentWindow("Browser:Cookies"); win && win.close(); var win = openDialog ("chrome://browser/content/preferences/cookies.xul", "_blank", "resizable,dialog=yes,centerscreen", null); win.addEventListener("load", function s(e) { win.removeEventListener("load", s, false); var host = content.location.host, arr = host.split('.'); if ( arr.length > 2 ) host = arr[1] + "." + arr[2]; var filter = win.document.getElementById("filter"); filter.value = host; setTimeout(function() filter.doCommand(), 0); }, false);

в код

Отсутствует

 

№1119527-01-2017 20:13:55

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

Re: Custom Buttons

intersk пишет
intersk пишет

нужна кнопка удаляющая куки для текущего сайта

ещё актуально

Удалить куки текущего сайта( Firefox24+ ) от 27.01.2017.

Отсутствует

 

№1119627-01-2017 20:59:21

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

Re: Custom Buttons

bucefal82 пишет

Здравствуйте ранньше на форуме были кнопки
http://i12.pixs.ru/storage/3/6/0/201701 … 931360.png
закрыть вкладки слева, закрыть все вкладки,закрыть вкладки справа
сейчас не могу найти, подскажите где искать.

Автор удалил эти кнопки, но вот нужные коды.
Закрыть вкладки слева:

Выделить код

Код:

gBrowser.visibleTabs.forEach((tab)=> !tab.pinned && tab._tPos < gBrowser.mCurrentTab._tPos && gBrowser.removeTab(tab))

Закрыть все вкладки:

Выделить код

Код:

[...gBrowser.tabs].forEach((tab)=> !tab.pinned && gBrowser.removeTab(tab))

Закрыть вкладки справа:

Выделить код

Код:

gBrowser.removeTabsToTheEndFrom(gBrowser.mCurrentTab)

Отсутствует

 

№1119727-01-2017 21:34:31

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

Re: Custom Buttons

Barsukk пишет

В FF51 перестала работать кнопка URL Corrector, которая меняет раскладку уже набранного текста. Что нужно поправить? Очень нужная кнопочка была
Так же больше не работает кнопочка Case Change, меняющая  прописные на заглавные буквы и наоборот в разных сочетаниях

24-01-2017 15:55:57

Отсутствует

 

№1119828-01-2017 01:04:05

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

Помогите пожалуйста, можно ли эту функцию

Выделить код

Код:

function(){ var rspW=620, rspH=420, rspL=parseInt((screen.width/2)-(rspW/2)), rspT=parseInt((screen.height/2)-(rspH/2)); window.open("http://raindrop.io/frame?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title),"raindrop-save","width="+rspW+",height="+rspH+",resizable=yes,scrollbars=yes,status=false,location=false,toolbar=false,left="+rspL+",top="+rspT) }

Вставить в этот код вместо открытия этого вот url

url: "http://www.inoreader.com/"

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

Выделить код

Код:

((contextMenu) => {
   var array = [
      { lab: "Inoreader", url: "http://www.inoreader.com/", img: "https://www.inoreader.com/favicon.ico"},
   ]
   array.forEach(function(m,i) {  
       var mItem = document.createElement("menuitem");
       mItem.setAttribute("label", m.lab );
       mItem.setAttribute("id", "link"+i );
       mItem.setAttribute("url", m.url );
       mItem.setAttribute("class", "menuitem-iconic");
       mItem.setAttribute("image", m.img );
       mItem.addEventListener("click", openLink );
       
       contextMenu.appendChild( mItem );
   });
   function openLink(e) {
      var url = e.target.getAttribute("url");
      if (url == "about:newtab") { BrowserOpenTab(); return; };      
      e.button ? gBrowser.selectedTab = gBrowser.addTab(url) : loadURI(url);
   };

   addDestructor(()=> array.forEach(function(m,i) contextMenu.removeChild(document.getElementById('link'+i)) ));
          
})(document.getElementById("contentAreaContextMenu") );

Отредактировано Stakhovsky (28-01-2017 01:04:45)

Отсутствует

 

№1119928-01-2017 13:39:07

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

Re: Custom Buttons

Stakhovsky пишет

Помогите пожалуйста, можно ли эту функцию

Выделить код

Код:

((contextMenu) => {
   var mItem = document.createElement("menuitem");
   mItem.setAttribute("label", "Inoreader");
   mItem.setAttribute("id", "context-inoreader");
   mItem.setAttribute("class", "menuitem-iconic");
   mItem.setAttribute("image", "https://www.inoreader.com/favicon.ico");
   contextMenu.appendChild(mItem);
   addDestructor(()=> mItem.remove() );

   mItem.onclick =()=> { var rspW=620, rspH=420, rspL=parseInt((screen.width/2)-(rspW/2)), rspT=parseInt((screen.height/2)-(rspH/2)); window.open("http://raindrop.io/frame?url="+encodeURIComponent(window.location.href)+"&title="+encodeURIComponent(document.title),"raindrop-save","width="+rspW+",height="+rspH+",resizable=yes,scrollbars=yes,status=false,location=false,toolbar=false,left="+rspL+",top="+rspT) };
          
})(document.getElementById("contentAreaContextMenu") );

Отсутствует

 

№1120028-01-2017 14:04:49

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1700
UA: Firefox 50.0

Re: Custom Buttons

bunda1
Спасибо большое.

Отсутствует

 

Board footer

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