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

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№982605-03-2016 02:32:50

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

Re: Custom Buttons

Кхе, еще вопрос: как теперь отслеживать смену поисковика? В about:config теперь ничего не пишет. Я так понимаю, по той же причине, что и browser.newtab.url выпилили?

Поскольку с обсерверами совсем не дружу, родил монстра:

Выделить код

Код:

var observer = {  
    observe: function(aEngine,aTopic) {
        if (aTopic == "browser-search-engine-modified") {
            self.image = Services.search.currentEngine.iconURI.spec;
        }
    }
};
var os = Components.classes["@mozilla.org/observer-service;1"]
                             .getService(Components.interfaces.nsIObserverService);
os.addObserver(observer, "browser-search-engine-modified", false);
addDestructor(function() { os.removeObserver(observer, "browser-search-engine-modified") });

, который вроде работает, но может как-то проще/правильнее можно?

Отсутствует

 

№982705-03-2016 03:11:11

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

Re: Custom Buttons

bunda1
Еще вопрос, как поправить под ночнушку, например вашу Уменьшить яркость на всех страницах? Тут мне пример не помог...

И еще вопрос, наверное к Dumby по поводу PasteButtonsForStylish, тоже ругается на

Выделить код

Код:

var obs = Application.storage.get(obsId, null);

shuffle.gif

Отредактировано turbot (05-03-2016 07:30:08)

Отсутствует

 

№982805-03-2016 04:02:20

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

bunda1 пишет

vv07 пишет: Друзья! Снова к вам. Есть замечательная кнопка Search and open + https://forum.mozilla-russia.org/viewto … 53#p451153, но на мой взгляд, малость недоработанная.Можно ли поправить, что бы не только открывала вкладку, но и переходила на нее тоже. Удобнее ведь намного.Выделить кодКод:////

Не работает дружище! Выделяю слово. Кликаю ЛКМ и ничего не происходит. Средний клик предлагает открыть все ссылки со страницы. ПКМ открывает выделенную ссылку. ЛКМ вообще не работает. И еще. Пропал выбор поисковиков, что был на прежней кнопке

скрытый текст
bec9c7bbb079aa6cf31196a280c019f9.png

В принципе дружище, меня вполне бы устроила и отдельная кнопка, если сложно возится с этой. Принцип действия- выделяешь слово или фразу, кликаешь и она открывается в том поисковике который установлен по умолчанию с переходом на эту вкладку. То есть обычный поиск, но гораздо удобнее. Надеюсь на тебя:) Имеющаяся кнопка выполняет это, при клике, но перехода на открытую вкладку нет увы. Приходится вручную переходить на нее.

Отредактировано vv07 (05-03-2016 04:23:14)

Отсутствует

 

№982905-03-2016 05:12:48

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

Re: Custom Buttons

vv07 пишет

с переходом на эту вкладку

Просто замените

Выделить код

Код:

gBrowser.loadOneTab

на

Выделить код

Код:

gBrowser.selectedTab = gBrowser.addTab

Отсутствует

 

№983005-03-2016 06:05:26

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

turbot
Сработало! Благодарю. Но есть одна странность. Если закрываешь открытую вкладку с поиском, то (даже не знаю как тлоком обьяснить) вкладка вроде закрылась, но ты по прежнему остаешься на странице, хотя в заголовке вкладки обозначен тот сайт, с которого совершен переход. УФФФФ
Надеюсь поймете суть проблемы.
PS Вот так это выглядит при поиске315abd47004c162f4187f2e5c788b964.png
а так после закрытия вкладки

скрытый текст
dc596fd847fc5f4a863f2e4742584b2a.png

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

Отредактировано vv07 (05-03-2016 06:13:28)

Отсутствует

 

№983105-03-2016 06:16:04

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

Re: Custom Buttons

vv07
Подтверждаю. Я думал это у меня ночнушка глючит, но раз и у вас... У меня на 38-ой, когда она еще в ночнушках была (да и вплоть до 44-ой) таких проблем с этой кнопкой не было. Не имею предположений.

Отсутствует

 

№983205-03-2016 06:43:02

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 619
UA: Firefox 38.0

Re: Custom Buttons

turbot пишет

vv07Подтверждаю. Я думал это у меня ночнушка глючит, но раз и у вас... У меня на 38-ой, когда она еще в ночнушках была (да и вплоть до 44-ой) таких проблем с этой кнопкой не было. Не имею предположений.

Вся надежда на маэстро bunda1

Отсутствует

 

№983305-03-2016 13:56:01

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

Re: Custom Buttons

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

скрытый текст
57a2891cd5d6bf5e1a25c2dc7b5747b9.png

Но беда с открытыми вкладками - они не востанавливаются если удалять "журнал посещений и загрузок".
Поэтому всегда приходится добавлять все вкладки в закладки перед закрытием, указывать папку, удалять старые ненужные.

Ув.разработичики, помогите пожалуйста если возможно этот процесс автоматизировать.
Возможно ли изменить кнопку "Добавить все вкладки в закладки..." (так как она моментально добавляет все вкладки без какой либо загрузки процессора) следующим образом:
1. Убрать высплывающее окно выбора папки.
2. Добавлять все вкладки в одну и ту же указанную папку на панель закладок.
3. Было бы идеально если еще при добавлении удалять предыдущие закладки. (или может в папке создавать под папки)

Отсутствует

 

№983405-03-2016 14:02:23

noknok
Участник
 
Группа: Members
Зарегистрирован: 27-02-2016
Сообщений: 67
UA: Firefox 44.0

Re: Custom Buttons

Coroner пишет

И через about:addons во вкладке "Custom Buttons" нет ?

Coroner
есть оказывается прямо в меню.  Как я ее не увидел не пойму.

Про оффтопик. Сорри и спасибо за напоминание оффтопа. Сейчас буду разбираться

Добавлено 05-03-2016 14:09:56

voqabuhe пишет

noknok пишет: А как удалить теперь ?  В настройках Custom Buttons нет ничего. В самом лисе не знаю как  выдрать из настроек меню. В какой папке сохраняются кнопки Custom Buttons ?Если не ошибаюсь, то можно в профиле из ...\custombuttons\backup\ взять нужный тебе buttonsoverlay.xul.bak и заменить им buttonsoverlay.xul в ...\custombuttons\, предварительно переименовав естественно.

voqabuhe
Спасибо. Все сразу в папку mozilla firefox сохраняю  что бы потом не возиться если снова будут проблемы . Поражаюсь. Вот что я сидел уже на скисшей Opera Presto и переживал что нет ей замены. Любуюсь разбираясь в  Firefox.

Добавлено 05-03-2016 14:12:21

Baron_ пишет

noknok пишет: Установил кнопку Bookmarks | Manager | Add  https://forum.mozilla-russia.org/viewto … 92#p521492 .   А как удалить теперь ?Нажмите Shift и удерживая ее нажмите на кнопке правую кнопку мыши. Увидите меню, в том числе - удалить. Или: дополнения - Custom Buttons - нажать удалить напротив нужной кнопки. В чем проблема?

Не знал. Теперь знаю. Спасибо. Про Shift  и ПКМ интересно

Отредактировано noknok (05-03-2016 14:12:21)

Отсутствует

 

№983505-03-2016 15:10:41

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

Re: Custom Buttons

turbot пишет

Поскольку с обсерверами совсем не дружу, родил монстра:
работает, но может как-то проще/правильнее можно?

Выделить код

Код:

Services.obs.addObserver(observer, "browser-search-engine-modified", false);   
   addDestructor(()=> Services.obs.removeObserver(observer, "browser-search-engine-modified") );

без:

Выделить код

Код:

var os = Components.classes["@mozilla.org/observer-service;1"]
                             .getService(Components.interfaces.nsIObserverService);

Отсутствует

 

№983605-03-2016 15:46:30

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

Re: Custom Buttons

turbot пишет

bunda1
Еще вопрос, как поправить под ночнушку, например вашу Уменьшить яркость на всех страницах?

Выделить код

Код:

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%3E%u0423%u043C%u0435%u043D%u044C%u0448%u0438%u0442%u044C%20%u044F%u0440%u043A%u043E%u0441%u0442%u044C%20%u043D%u0430%20%u0432%u0441%u0435%u0445%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%u0445%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%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%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u0441%u0442%u0438%u043B%u044C%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20setStyleForPages%28%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%20%29%3B%0A%0A%0A//%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%20%u043C%u0435%u043D%u044F%u0442%u044C%20%u044F%u0440%u043A%u043E%u0441%u0442%u044C%20%u0432%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%u0445%20%u0438%20%u0441%u0442%u0438%u043B%u0435%20..........%0Athis.onwheel%20%3De%3D%3E%7B%0A%20%20%20var%20i%20%3D%20cbu.getPrefs%28l%29%2C%0A%20%20%20%20%20%20%20i%20%3D%20e.deltaY%20%3C%200%20%3F%20i%20+%20step%20%3A%20i%20-%20step%3B%0A%20%20%20if%20%28%200%20%3C%3D%20i%20%26%26%20i%20%3C%3D%2099%20%29%20cbu.setPrefs%28l%2C%20i%29%3B%0A%0A%20%20%20setStyleForPages%28%20cbu.setPrefs%28s%2C%20true%29%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u0418%u0441%u043F%u0440%u0430%u0432%u044B%u0442%u044C%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%u0443%20%u0441%20position%20%u0434%u043B%u044F%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0439%20..........%0AaddEventListener%28%22mouseover%22%2C%20e%3D%3E%7B%0A%20%20%20if%20%28%20e.button%20%7C%7C%20e.target.localName%20%21%3D%3D%20%27img%27%20%29%20return%3B%20%20%0A%20%20%20%0A%20%20%20var%20img%20%3D%20e.target%2C%20node%20%3D%20img%3B%0A%20%20%20if%20%28%20getPosition%28img%29%20%3D%3D%20%27absolute%27%29%20%7B%20img.setAttribute%28%27currentPosition%27%2C%20%27true%27%29%3B%20return%3B%20%7D%3B%20%20%0A%0A%20%20%20while%28%20node%20%3D%20node.parentNode%20%29%20%7B%0A%20%20%20%20%20%20if%20%28%20getPosition%28node%29%20%3D%3D%20%27relative%27%20%29%20break%3B%0A%20%20%20%20%20%20if%20%28%20getPosition%28node%29%20%3D%3D%20%27absolute%27%29%20%7B%20img.setAttribute%28%27parentPosition%27%2C%20%27true%27%29%3B%20break%3B%20%7D%3B%20%20%20%0A%20%20%20%7D%3B%0A%20%20%20%20%20%20%0A%20%20%20function%20getPosition%28node%29%20%7B%20return%20getComputedStyle%28node%2C%20%27%27%29.position%20%7D%3B%0A%7D%2C%20false%2C%20gBrowser%29%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20css%20%u043A%u043E%u0434%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20..........%0Avar%20step%20%3D%202%2C%0A%20%20%20%20s%20%3D%20%22CB.darken%22%2C%0A%20%20%20%20help%20%3D%20self.Help%2C%0A%20%20%20%20l%20%3D%20%22CB.darken.level%22%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20about%3Aconfig%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20..........%0Acbu.isPref%28l%2C%2028%29%3B%0Acbu.isPref%28s%2C%20false%29%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.%0A%20%20%20src%20%3D%20%21cbu.getPrefs%28s%29%20%3F%20self.image%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/NTU1/z8/P/89PT3/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv89PT3/Pz8//zU1Nf8AAAD/AAAA/6Ghof+YmJj/ioqK/42Njf+NjY3/jY2N/42Njf+NjY3/jY2N/42Njf+NjY3/ioqK/5iYmP+hoaH/AAAA/wAAAP+dnZ3/hISE/3R0dP94eHj/eHh4/3h4eP94eHj/eHh4/3h4eP94eHj/eHh4/3R0dP+EhIT/nZ2d/wAAAP8AAAD/qKio/5OTk/+CgoL/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4aGhv+CgoL/k5OT/6ioqP8AAAD/AAAA/6+vr/+ampr/iYmJ/42Njf+NjY3/jY2N/42Njf+NjY3/jY2N/42Njf+NjY3/iYmJ/5qamv+vr6//AAAA/wAAAP+1tbX/oqKi/5GRkf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5GRkf+ioqL/tbW1/wAAAP8CAgL/vb29/6mpqf+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/qamp/729vf8CAgL/AAAA/8PDw/+xsbH/n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/n5+f/7Gxsf/Dw8P/AAAA/zo6Ov/Pz8//xMTE/7a2tv+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7a2tv/ExMT/z8/P/zo6Ov9aWlr/2dnZ/9PT0//Jycn/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Jycn/09PT/9nZ2f9aWlr/U1NT/9/f3//a2tr/z8/P/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/z8/P/9ra2v/f39//U1NT/1RUVP/m5ub/4+Pj/9jY2P/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9jY2P/j4+P/5ubm/1RUVP9UVFT/7u7u/+3t7f/i4uL/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/i4uL/7e3t/+7u7v9UVFT/VFRU/+/v7//y8vL/5+fn/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/5+fn//Ly8v/v7+//VFRU/1RUVP/8/Pz//////////////////////////////////////////////////////////////////Pz8/1RUVP9WVlb/kJCQ/5WVlf+VlZX/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+VlZX/lZWV/5CQkP9WVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20..........%0Afunction%20setStyleForPages%28%29%20%7B%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20var%20css%20%3D%20help.replace%28/value/g%2C%20cbu.getPrefs%28l%29/100%20%29%3B%20%20%20%20%20%20%0A%20%20%20var%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%29%3B%20%0A%20%20%20%0A%20%20%20try%20%7B%20sss.unregisterSheet%28Services.previousUri%20%7C%7C%20uri%2C%200%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20Services.previousUri%20%3D%20uri%3B%0A%20%20%20%0A%20%20%20cbu.getPrefs%28s%29%20%26%26%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%7D%3B%0Acbu.getPrefs%28s%29%20%26%26%20setStyleForPages%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%20%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u044F%u0440%u043A%u043E%u0441%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%20%5Cn%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u043C%u0435%u043D%u044F%u0442%u044C%20%u044F%u0440%u043A%u043E%u0441%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%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@-moz-document%20url-prefix%28http%3A//%29%2C%20url-prefix%28https%3A//%29%2C%20url-prefix%28ftp%3A//%29%2C%20url-prefix%28file%3A//%29%2C%0Aurl-prefix%28chrome%3A//%29%2C%20url-prefix%28about%29%20%7B%0A%20%20%20browser%7B%20background%3A%20LightGray%20%21important%3B%20%7D%20%20%20%0A%20%20%20%0A%20%20%20/*%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%u0439%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u043C%u0438%20%u044D%u043B%u0435%u043C%u0435%u043D%u0442%u0430%u043C%u0438%20%u043F%u0441%u0435%u0432%u0434%u043E%u044D%u043B%u0435%u043C%u0435%u043D%u0442%20%u0441%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u043E%u0439%20%u043F%u0440%u043E%u0437%u0440%u0430%u0447%u043D%u043E%u0441%u0442%u044C%u044E%20*/%0A%20%20%20html%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%u0432%u0435%u0431%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%20%u043D%u0435%u043A%u043E%u0442%u043E%u0440%u044B%u0435%20about%3A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%2C%20%u0438%u043D%u0441%u043F%u0435%u043A%u0442%u043E%u0440%20DOM%20%u0438%20%u0441%u0442%u0438%u043B%u0435%u0439%20*/%0A%20%20%20%23appbar-content%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0441%u0432%u0435%u0440%u0445%u0443%20%u043D%u0430%20youtube%20*/%0A%20%20%20%23txbTextNodeValue%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%u0440%u0430%u0448%u0438%u0440%u0435%u043D%u0438%u0435%20DOM%20%u0438%u043D%u0441%u043F%u0435%u043A%u0442%u043E%u0440%20*/%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%5Bclass%3D%22theme-light%22%5D%20%23editor%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%u0438%u043D%u0441%u043F%u0435%u043A%u0442%u043E%u0440%20DOM%20%u0438%20%u0441%u0442%u0438%u043B%u0435%u0439%20*/%20%0A%20%20%20%5Bclass%3D%22theme-light%22%5D%20%23profiles-list%3Aafter%2C%20%0A%20%20%20%5Bclass%3D%22theme-light%22%5D%20%23options-panel%3Aafter%2C%0A%20%20%20window%3Anot%28%5Bclass%3D%22theme-dark%22%5D%29%20%23editor%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%5Bclass%3D%22theme-light%22%5D%20%23style-editor-chrome%3Aafter%2C%0A%20%20%20%5Bclass%3D%22theme-light%22%5D%20%23network-inspector-view%3Aafter%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20.cbeditor-textbox%3Aafter%2C%20%23newtab-window%3Aafter%2C%20%20%20%20%20%20%20%20%20%20/*%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%20%u0421%u0412%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043D%u043E%u0432%u0430%u044F%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%20*/%0A%20%20%20treecols%3Anot%28%5Bid%3D%22placeContentColumns%22%5D%29%3Aafter%2C%20%20%20%20%20%20%20%20%20/*%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%2C%20%u0438%u0441%u0442%u043E%u0440%u0438%u044F%2C%20%u0431%u0438%u0431%u043B%u0438%u043E%u0442%u0435%u043A%u0430%2C%20about%3Aconfig%20*/%0A%20%20%20%23devtools-webconsole%3Aafter%2C%20%23ConsoleBox%3Aafter%2C%20%20%20%20%20%20%20%20%20%20/*%20%u043A%u043E%u043D%u0441%u043E%u043B%u044C%20%u043E%u0448%u0438%u0431%u043E%u043A%2C%20%u0432%u0435%u0431%20%u043A%u043E%u043D%u0441%u043E%u043B%u044C%20%u043E%u0448%u0438%u0431%u043E%u043A%20*/%0A%20%20%20%5Btitle%3D%22%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%22%5D%5BhasBrowserHandlers%3D%22true%22%5D%3Aafter%2C%20%20%20/*%20%u0440%u0430%u0437%u043D%u044B%u0435%20about%3A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20*/%0A%20%20%20%5Bid%3D%22permissions-page%22%5D%3Aafter%2C%20%5Bid%20%3D%22tabsList%22%5D%3Aafter%2C%0A%20%20%20%5Bid%3D%22contentAreaDownloadsView%22%5D%3Aafter%2C%20%5Bid%3D%22addons-page%22%5D%3Aafter%20%20%20%0A%20%20%20%7B%0A%20%20%20%20%20content%3A%20%22%22%20%21important%3B%0A%20%20%20%20%20position%3A%20fixed%20%21important%3B%0A%20%20%20%20%20top%3A%200%3B%20bottom%3A%200%3B%20left%3A%200%3B%20right%3A%200%3B%0A%20%20%20%20%20background%3A%20%23000%20%21important%3B%0A%20%20%20%20%20z-index%3A%2099999999%20%21important%3B%0A%20%20%20%20%20pointer-events%3A%20none%20%21important%3B%0A%20%20%20%20%20opacity%3A%20value%20%21important%3B%0A%20%20%20%7D%0A%20%20%20%0A%20%20%20/*%20%u043E%u0442%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u0443%u043C%u0435%u043D%u044C%u0448%u0435%u043D%u0438%u0435%20%u044F%u0440%u043A%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u043A%u0438%20%u0434%u0432%u043E%u0439%u043D%u043E%u0433%u043E%20%u0437%u0430%u0442%u0435%u043C%u043D%u0435%u043D%u0438%u044F%20%20*/%0A%20%20%20%23comments-test-iframe%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%u043A%u043E%u043C%u0435%u043D%u0442%u0430%u0440%u0438%u0438%20%u043D%u0430%20youtube%20*/%0A%20%20%20%0A%20%20%20/*%20%u043E%u0442%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u0443%u043C%u0435%u043D%u044C%u0448%u0435%u043D%u0438%u0435%20%u044F%u0440%u043A%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0439%20%u043F%u0440%u0438%20%u043D%u0430%u0432%u0435%u0434%u0435%u043D%u0438%u0438%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%20*/%0A%20%20%20svg%3Ahover%2C%0A%20%20%20DIV%5Bclass%3D%22img%22%5D%3Ahover%2C%0A%20%20%20DIV%5Bclass%3D%22rel%22%5D%3Ahover%2C%0A%20%20%20DIV%5Bclass%3D%22ytp-thumbnail%22%5D%3Ahover%2C%0A%20%20%20DIV%5Bid%3D%22watch7-sidebar-modules%22%5D%3Ahover%2C%0A%20%20%20DIV%5Bclass%3D%22right_block%20video_right%20video_today%22%5D%3Ahover%2C%0A%20%20%20DIV%5Bclass%3D%22photo%22%5D%3Ahover%2C%0A%20%20%20img%3Ahover%3Anot%28%5Bparentposition%5D%29%3Anot%28%5Bcurrentposition%5D%29%3Anot%28%5Bid%3D%22keyboard_picture%22%5D%29%3Anot%28%5Bid%3D%22mpiv-preview%22%5D%29%3Anot%28%5Bid%3D%22splashoverlay%22%5D%29%3Anot%28%5Bclass%3D%22prew%22%5D%29%3Anot%28%5Bclass%3D%22rel%22%5D%29%0A%20%20%20%7B%20%0A%20%20%20%20%20-moz-appearance%3A%20none%20%21important%3B%20position%3A%20relative%20%21important%3B%20z-index%3A%20999999999%20%21important%3B%0A%20%20%20%7D%0A%20%20%20img%5Bparentposition%5D%3Ahover%20%7B%20%0A%20%20%20%20%20-moz-appearance%3A%20none%20%21important%3B%20position%3A%20relative%20%21important%3B%20z-index%3A%20999999999%20%21important%3B%20left%3A%200px%3B%20bottom%3A%200px%3B%0A%20%20%20%7D%0A%20%20%20img%5Bcurrentposition%5D%3Ahover%20%7B%20%0A%20%20%20%20%20z-index%3A%20999999999%20%21important%3B%0A%20%20%20%7D%0A%0A%20%20%20/*%20%u043F%u043E%u043B%u043E%u0441%u0430%20%u043F%u043E%u0438%u0441%u043A%u0430%20%u043D%u0430%20youtube%20*/%0A%20%20%20%23yt-masthead-container%20%7B%20background%3A%20LightGray%20%21important%3B%20%7D%0A%0A%20%20%20/*%20%u0438%u0441%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20*/%0A%20%20%20embed%5Bflashvars%5D%2C%20%20%0A%20%20%20div%5Bclass%3D%22html5-video-container%22%5D%2C%0A%20%20%20*%5Btype*%3D%22application/x-silverlight%22%5D%2C%0A%20%20%20*%5Btype*%3D%22application/x-shockwave-flash%22%5D%20%7B%20%0A%20%20%20%20%20-moz-appearance%3A%20none%20%21important%3B%20z-index%3A%20999999999%20%21important%3B%0A%20%20%20%7D%0A%7D%0A%0A/*%20%u0438%u0441%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0435%u043A%u043E%u0442%u043E%u0440%u044B%u0435%20%u044D%u043B%u0435%u043C%u0435%u043D%u0442%u044B%20%u043D%u0430%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%u043D%u044B%u0445%20%u0441%u0430%u0439%u0442%u0430%u0445%20%u0434%u043B%u044F%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u043A%u0438%20%u0434%u0432%u043E%u0439%u043D%u043E%u0433%u043E%20%u0437%u0430%u0442%u0435%u043C%u043D%u0435%u043D%u0438%u044F%20*/%20%0A@-moz-document%20domain%28politobzor.net%29%20%7B%20%0A%20%20%20html%5Bxmlns%3D%22http%3A//www.w3.org/1999/xhtml%22%5D%3Aafter%20%7B%20content%3A%20none%20%21important%3B%20%7D%0A%20%20%20.item%20%7B%20background%3A%20LightGray%20%21important%3B%20%7D%0A%7D%0A@-moz-document%20url-prefix%28http%3A//translate.google.com/translate%29%20%7B%20%0A%20%20%20html%3Aafter%20%7B%20content%3A%20none%20%21important%3B%20%7D%0A%7D%0A@-moz-document%20url%28about%3Ahealthreport%29%2C%20url%28about%3Asessionrestore%29%2C%20url%28about%3Awelcomeback%29%20%7B%20%0A%20%20%20html%3Aafter%20%7B%20content%3A%20none%20%21important%3B%20%7D%0A%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№983705-03-2016 16:44:15

asn1i6m
Участник
 
Группа: Members
Зарегистрирован: 05-03-2016
Сообщений: 4
UA: Firefox 44.0

Re: Custom Buttons

Ребята, не пинайте сильно. Нет пока времени разбираться в аддоне, поэтому задам нубский вопрос. :dumb: Есть букмарклет, имеющий следущий код:

Выделить код

Код:

javascript:(function(){location.replace(location.href.search(/\?cm_interactive/)!=-1?location.href.replace(/\?cm_interactive.*/,''):location.href.replace(/#.*|$/,'?cm_interactive'));})();

Как на его основе создать кнопку?:iron:

Отсутствует

 

№983805-03-2016 16:53:14

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

Re: Custom Buttons

turbot пишет

И еще вопрос, наверное к Dumby по поводу PasteButtonsForStylish, тоже ругается на

Выделить код

Код:

var obs = Application.storage.get(obsId, null);

Можно попробовать правильно/неправильно/как-то воспользоваться помощью бога.

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

Выделить код

Код:

data:application/x-javascript;base64,77u/Z0Jyb3dzZXIuY3VycmVudFVSSS5zcGVjID09ICJhYm91dDpjdXN0b21pemluZyIgfHwgKCgpID0+IHsNCgl2YXIgb2JzSWQgPSAiQ0IiICsgX2lkLnNsaWNlKDIwKSArICJfUGFzdGVCdXR0b25zRm9yU3R5bGlzaCI7DQoJdmFyIHN0b3JhZ2VJZCA9IG9ic0lkICsgIlN0b3JhZ2UiOw0KDQovLwktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdG9yYWdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCgkNCgkvLyBTaW1wbGUgcmVwbGFjZW1lbnQgZm9yIEFwcGxpY2F0aW9uLnN0b3JhZ2UNCgkvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL0luZm9jYXRjaGVyL0N1c3RvbV9CdXR0b25zL2NvbW1pdC8xNGQ0YzMzYmVlMjA1MjhkYTE0NzkzZDNiNGEzNzczYThhMzRkMDQ4DQoJDQoJdmFyIHN0b3JhZ2UgPSAoZnVuY3Rpb24oKSB7DQoJCXZhciBnbG9iYWwgPSBDdS5pbXBvcnQoInJlc291cmNlOi8vZ3JlL21vZHVsZXMvU2VydmljZXMuanNtIiwge30pOw0KCQl2YXIgbnMgPSBzdG9yYWdlSWQ7DQoJCXZhciBzdG9yYWdlID0gZ2xvYmFsW25zXSB8fCAoZ2xvYmFsW25zXSA9IGdsb2JhbC5PYmplY3QuY3JlYXRlKG51bGwpKTsNCgkJcmV0dXJuIHsNCgkJCWdldDogZnVuY3Rpb24oa2V5LCBkZWZhdWx0VmFsKSB7DQoJCQkJaWYoa2V5IGluIHN0b3JhZ2UpDQoJCQkJCXJldHVybiBzdG9yYWdlW2tleV07DQoJCQkJcmV0dXJuIGRlZmF1bHRWYWw7DQoJCQl9LA0KCQkJc2V0OiBmdW5jdGlvbihrZXksIHZhbCkgew0KCQkJCWlmKGtleSA9PT0gbnVsbCkNCgkJCQkJZGVsZXRlIHN0b3JhZ2Vba2V5XTsNCgkJCQllbHNlDQoJCQkJCXN0b3JhZ2Vba2V5XSA9IHZhbDsNCgkJCX0NCgkJfTsNCgl9KSgpOw0KDQovLwktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCXZhciBvYnMgPSBzdG9yYWdlLmdldChvYnNJZCwgbnVsbCk7DQoJaWYgKCFvYnMpIHsNCgkJb2JzID0gew0KCQkJaWQ6IG9ic0lkLA0KCQkJYm94SWQ6IG9ic0lkICsgIl9Cb3giLA0KCQkJYnJVUkw6IGxvY2F0aW9uLmhyZWYsDQoJCQl0b3BpYzogImRvY3VtZW50LXNob3duIiwNCgkJCWluaXQ6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMucHJvY2VlZEFsbCh0cnVlKTsNCgkJCQlTZXJ2aWNlcy5vYnMuYWRkT2JzZXJ2ZXIodGhpcywgdGhpcy50b3BpYywgZmFsc2UpOw0KCQkJfSwNCgkJCWRlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMucHJvY2VlZEFsbChmYWxzZSk7DQoJCQkJdHJ5IHtTZXJ2aWNlcy5vYnMucmVtb3ZlT2JzZXJ2ZXIodGhpcywgdGhpcy50b3BpYyk7fQ0KCQkJCWNhdGNoKGV4KSB7Q3UucmVwb3J0RXJyb3IoZXgpO30NCgkJCX0sDQoNCi8vCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gT0JTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCQkJb2JzZXJ2ZTogZnVuY3Rpb24oZG9jKSB7dGhpcy5wcm9jZWVkRG9jKGRvYywgdHJ1ZSl9LA0KCQkJaXNTdHlsaXNoRG9jKGRvYykgew0KCQkJCXJldHVybiBkb2MubG9jYXRpb24gJiYgZG9jLmxvY2F0aW9uLmhyZWYuc3RhcnRzV2l0aCgiYWJvdXQ6c3R5bGlzaC1lZGl0IikNCgkJCX0sDQoJCQlpc0Jyb3dzZXJEb2MoZG9jKSB7DQoJCQkJcmV0dXJuIGRvYy5sb2NhdGlvbiAmJiBkb2MubG9jYXRpb24uaHJlZiA9PSB0aGlzLmJyVVJMDQoJCQl9LA0KCQkJcHJvY2VlZEFsbChpbml0KSB7DQoJCQkJdmFyIGVuID0gU2VydmljZXMud20uZ2V0RW51bWVyYXRvcihudWxsKTsNCgkJCQl3aGlsZShlbi5oYXNNb3JlRWxlbWVudHMoKSkgew0KCQkJCQl2YXIgZG9jID0gZW4uZ2V0TmV4dCgpLmRvY3VtZW50Ow0KCQkJCQlpZiAodGhpcy5pc0Jyb3dzZXJEb2MoZG9jKSkgew0KCQkJCQkJZm9yKHZhciBiciBvZiBkb2MuZGVmYXVsdFZpZXcuZ0Jyb3dzZXIuYnJvd3NlcnMpIHsNCgkJCQkJCQl0aGlzLnByb2NlZWREb2MoYnIuY29udGVudERvY3VtZW50LCBpbml0KTsNCgkJCQkJCX0NCgkJCQkJCXZhciBzaWRlYmFyRG9jID0gZG9jLmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyIikuY29udGVudERvY3VtZW50Ow0KCQkJCQkJdGhpcy5wcm9jZWVkRG9jKHNpZGViYXJEb2MsIGluaXQpOw0KCQkJCQkJdmFyIHdwYiA9IHNpZGViYXJEb2MuZ2V0RWxlbWVudEJ5SWQoIndlYi1wYW5lbHMtYnJvd3NlciIpOw0KCQkJCQkJd3BiICYmIHRoaXMucHJvY2VlZERvYyh3cGIuY29udGVudERvY3VtZW50LCBpbml0KTsNCgkJCQkJfSANCgkJCQkJZWxzZQ0KCQkJCQkJdGhpcy5wcm9jZWVkRG9jKGRvYywgaW5pdCk7DQoJCQkJfQ0KCQkJfSwNCgkJCXByb2NlZWREb2MoZG9jLCBhZGQpIHsNCgkJCQlpZiAoIXRoaXMuaXNTdHlsaXNoRG9jKGRvYykgfHwgZG9jLnJlYWR5U3RhdGUgIT0gImNvbXBsZXRlIikgcmV0dXJuOw0KCQkJCXZhciBib3ggPSBkb2MuZ2V0RWxlbWVudEJ5SWQodGhpcy5ib3hJZCk7DQoJCQkJaWYgKGFkZCAmJiAhYm94KSB7DQoJCQkJCXZhciBiZWZvcmUgPSBkb2MuZ2V0RWxlbWVudEJ5SWQoIndyYXAtbGluZXMiKTsNCgkJCQkJdGhpcy5hZGRCb3goYmVmb3JlKTsNCgkJCQl9IGVsc2UgaWYgKCFhZGQgJiYgYm94KSB7DQoJCQkJCWJveCAmJiBib3gucmVtb3ZlKCk7DQoJCQkJfQ0KCQkJfSwNCg0KLy8JCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQk9YIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCgkJCWdldCBib3goKSB7DQoJCQkJZGVsZXRlIHRoaXMuYm94Ow0KCQkJCXJldHVybiB0aGlzLmJveCA9IHRoaXMuY3JlYXRlQm94KCk7DQoJCQl9LA0KCQkJY3JlYXRlQm94KCkgew0KCQkJCXZhciBib3ggPSB0aGlzLmluc2VydEVsZW1lbnQoImhib3giLCBudWxsLCB7DQoJCQkJCWlkOiB0aGlzLmJveElkLA0KCQkJCQlvbmNsaWNrOiBgDQoJCQkJCQlpZiAoZXZlbnQuYnV0dG9uICE9IDIpIHJldHVybjsNCgkJCQkJCXZhciBwb3B1cCA9IHRoaXMubGlua2VkUG9wdXA7DQoJCQkJCQlpZiAocG9wdXAuc3RhdGUgIT0gImNsb3NlZCIpIHBvcHVwLmhpZGVQb3B1cCgpOw0KCQkJCQkJcG9wdXAubGlua2VkVGFyZ2V0ID0gZXZlbnQub3JpZ2luYWxUYXJnZXQ7DQoJCQkJCQlwb3B1cC5vcGVuUG9wdXBBdFNjcmVlbihldmVudC5zY3JlZW5YLCBldmVudC5zY3JlZW5ZKTsNCgkJCQkJYCwNCgkJCQkJb25jb21tYW5kOiBgDQoJCQkJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsNCgkJCQkJCXZhciB0cmcgPSBldmVudC5vcmlnaW5hbFRhcmdldDsNCgkJCQkJCWlmICh0cmcubm9kZU5hbWUgPT0gInRvb2xiYXJidXR0b24iKQ0KCQkJCQkJCXRyZy5maXJzdENoaWxkLm9wZW5Qb3B1cCh0cmcpOw0KCQkJCQkJLyoNCgkJCQkJCWVsc2UgaWYgKHRyZy5ub2RlTmFtZSA9PSAibWVudWl0ZW0iKQ0KCQkJCQkJCXRyZy5oYXNBdHRyaWJ1dGUoInZhbHVlIikNCgkJCQkJCQkmJiBpbnNlcnRDb2RlQXRDYXJldCh0cmcudmFsdWUpOw0KCQkJCQkJKi8NCgkJCQkJCWVsc2UgaWYgKHRyZy5ub2RlTmFtZSA9PSAibWVudWl0ZW0iICYmIHRyZy5oYXNBdHRyaWJ1dGUoInZhbHVlIikpIHsNCgkJCQkJCQlpbnNlcnRDb2RlQXRDYXJldCh0cmcudmFsdWUpOw0KCQkJCQkJCWNvZGVFbGVtZW50V3JhcHBlci5mb2N1cygpOw0KCQkJCQkJfQ0KCQkJCQlgDQoJCQkJfSk7DQoJCQkJcmV0dXJuIGJveDsNCgkJCX0sDQoJCQlnZXQgYm94Q29udGVudCgpIHsNCgkJCQlkZWxldGUgdGhpcy5ib3hDb250ZW50Ow0KCQkJCXJldHVybiB0aGlzLmJveENvbnRlbnQgPSBzZWxmLkhlbHAudHJpbSgpOw0KCQkJfSwNCgkJCWFkZEJveChiZWZvcmUpIHsNCgkJCQl2YXIgYm94ID0gYmVmb3JlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuYm94LmNsb25lTm9kZShmYWxzZSksIGJlZm9yZSk7DQoJCQkJYm94LmlubmVySFRNTCA9IHRoaXMuYm94Q29udGVudDsNCgkJCQlib3gubGlua2VkUG9wdXAgPSBib3guYXBwZW5kQ2hpbGQodGhpcy5wb3B1cC5jbG9uZU5vZGUodHJ1ZSkpOw0KCQkJCWJveC5saW5rZWRQb3B1cC5jcmVhdG9yID0gdGhpczsNCgkJCQlib3guc3R5bGUuY3NzVGV4dCA9ICJtYXgtaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7IG1heC13aWR0aDogMzIwcHggIWltcG9ydGFudDsiOw0KCQkJfSwNCg0KLy8JCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENPTlRFWFQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCgkJCXBvcHVwWFVMOiBgDQoJCQkJPG1lbnVwb3B1cCB4bWxucz0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCINCgkJCQkJaWQ9IiR7b2JzSWQgKyAiX0NvbnRleHQifSINCgkJCQkJb25jb21tYW5kPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgY3JlYXRvci5jbWREaXNwYXRjaGVyKGV2ZW50KTsiDQoJCQkJCW9ucG9wdXBzaG93aW5nPSJjcmVhdG9yLmNvbnRleHRQb3B1cHNob3dpbmcodGhpcyk7Ij4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQmNC30LzQtdC90LjRgtGMIiB2YWx1ZT0ib3BlbkVkaXRvciIvPg0KCQkJCQk8bWVudXNlcGFyYXRvci8+DQoJCQkJCTxtZW51aXRlbSBsYWJlbD0i0JLRi9GI0LUiIHZhbHVlPSJtb3ZlVXAiLz4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQndC40LbQtSIgdmFsdWU9Im1vdmVEb3duIi8+DQoJCQkJCTxtZW51c2VwYXJhdG9yLz4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQmtC+0L/QuNGA0L7QstCw0YLRjCIgdmFsdWU9ImNvcHlJdGVtIiBjbG9zZW1lbnU9Im5vbmUiLz4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQktGB0YLQsNCy0LjRgtGMIiB2YWx1ZT0icGFzdGVJdGVtIi8+DQoJCQkJCTxtZW51aXRlbSBsYWJlbD0i0KPQtNCw0LvQuNGC0YwiIHZhbHVlPSJkZWxldGVJdGVtIi8+DQoJCQkJCTxtZW51c2VwYXJhdG9yLz4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQndC+0LLRi9C5IG1lbnVpdGVtIiB2YWx1ZT0ibmV3TWVudWl0ZW0iLz4NCgkJCQkJPG1lbnVpdGVtIGxhYmVsPSLQndC+0LJvZSBtZW51IiB2YWx1ZT0ibmV3TWVudSIvPg0KCQkJCQk8bWVudWl0ZW0gbGFiZWw9ItCd0L7QstGL0LkgdG9vbGJhcmJ1dHRvbiIgdmFsdWU9Im5ld0J1dHRvbiIvPg0KCQkJCQk8bWVudWl0ZW0gbGFiZWw9ItCd0L7QstGL0LkgbWVudXNlcGFyYXRvciIgdmFsdWU9Im5ld1NlcGFyYXRvciIvPg0KCQkJCQk8bWVudXNlcGFyYXRvci8+DQoJCQkJCTxtZW51aXRlbSBsYWJlbD0i0JrQsNGA0YLQuNC90LrQsCBiYXNlNjQiIHZhbHVlPSJpbWdCYXNlNjQiLz4NCgkJCQk8L21lbnVwb3B1cD4NCgkJCWAsDQoJCQlnZXQgcG9wdXAoKSB7DQoJCQkJZGVsZXRlIHRoaXMucG9wdXA7DQoJCQkJcmV0dXJuIHRoaXMucG9wdXAgPSB0aGlzLmNyZWF0ZVBvcHVwKCk7DQoJCQl9LA0KCQkJY3JlYXRlUG9wdXAoKSB7DQoJCQkJdmFyIHh1bCA9IHRoaXMucG9wdXBYVUwudHJpbSgpLnJlcGxhY2UoLz5ccys8L2csICI+PCIpOw0KCQkJCXZhciBwb3B1cCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeHVsLCAiYXBwbGljYXRpb24veG1sIikuZG9jdW1lbnRFbGVtZW50Ow0KCQkJCXBvcHVwLmNyZWF0b3IgPSB0aGlzOw0KCQkJCXJldHVybiBwb3B1cDsNCgkJCX0sDQoJCQljbWREaXNwYXRjaGVyKGUpIHsNCgkJCQl2YXIgdHJnID0gZS5vcmlnaW5hbFRhcmdldCwgcG9wdXAgPSB0cmcucGFyZW50Tm9kZSwgY21kID0gdHJnLnZhbHVlOw0KCQkJCWlmICghY21kKSByZXR1cm47DQoJCQkJdmFyIHBvcHVwTm9kZSA9IHBvcHVwLmxpbmtlZFRhcmdldDsNCgkJCQljbWQuc3RhcnRzV2l0aCgibmV3IikNCgkJCQkJPyB0aGlzLm5ld0l0ZW0ocG9wdXBOb2RlLCBjbWQuc2xpY2UoMykpDQoJCQkJCTogdGhpc1tjbWRdKHBvcHVwTm9kZSwgcG9wdXApOw0KCQkJCSJjb3B5SXRlbSBvcGVuRWRpdG9yIGltZ0Jhc2U2NCIuaW5jbHVkZXMoY21kKSB8fCB0aGlzLnNhdmUocG9wdXBOb2RlKTsNCgkJCX0sDQoJCQlnZXQgZW1wdHlTZXBhcmF0b3IoKSB7DQoJCQkJZGVsZXRlIHRoaXMuZW1wdHlTZXBhcmF0b3I7DQoJCQkJcmV0dXJuIHRoaXMuZW1wdHlTZXBhcmF0b3IgPSB0aGlzLmluc2VydEVsZW1lbnQoIm1lbnVzZXBhcmF0b3IiKTsNCgkJCX0sDQoJCQlnZXQgZW1wdHlNZW51aXRlbSgpIHsNCgkJCQlkZWxldGUgdGhpcy5lbXB0eU1lbnVpdGVtOw0KCQkJCXJldHVybiB0aGlzLmVtcHR5TWVudWl0ZW0gPSB0aGlzLmluc2VydEVsZW1lbnQoIm1lbnVpdGVtIiwgbnVsbCwge2xhYmVsOiAibWVudWl0ZW0iLCB2YWx1ZTogIiJ9KTsNCgkJCX0sDQoJCQlnZXQgZW1wdHlNZW51cG9wdXAoKSB7DQoJCQkJZGVsZXRlIHRoaXMuZW1wdHlNZW51cG9wdXA7DQoJCQkJdmFyIHBvcHVwID0gdGhpcy5pbnNlcnRFbGVtZW50KCJtZW51cG9wdXAiKTsNCgkJCQlwb3B1cC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5TWVudWl0ZW0uY2xvbmVOb2RlKGZhbHNlKSk7DQoJCQkJcmV0dXJuIHRoaXMuZW1wdHlNZW51cG9wdXAgPSBwb3B1cDsNCgkJCX0sDQoJCQlnZXQgZW1wdHlNZW51KCkgew0KCQkJCWRlbGV0ZSB0aGlzLmVtcHR5TWVudTsNCgkJCQl2YXIgbWVudSA9IHRoaXMuaW5zZXJ0RWxlbWVudCgibWVudSIsIG51bGwsIHtsYWJlbDogIm1lbnUifSk7DQoJCQkJbWVudS5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5TWVudXBvcHVwLmNsb25lTm9kZSh0cnVlKSk7DQoJCQkJcmV0dXJuIHRoaXMuZW1wdHlNZW51ID0gbWVudTsNCgkJCX0sDQoJCQlnZXQgZW1wdHlCdXR0b24oKSB7DQoJCQkJZGVsZXRlIHRoaXMuZW1wdHlCdXR0b247DQoJCQkJdmFyIGJ0biA9IHRoaXMuaW5zZXJ0RWxlbWVudCgidG9vbGJhcmJ1dHRvbiIsIG51bGwsIHsNCgkJCQkJaW1hZ2U6ICJkYXRhOmltYWdlL3gtaWNvbjtiYXNlNjQsQUFBQkFBRUFFQkFBQUFFQUlBQm9CQUFBRmdBQUFDZ0FBQUFRQUFBQUlBQUFBQUVBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BQUFBL3dBQUFQLy8vLy8vQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFELy8vLy8vd0FBQVA4QUFBRC8vLy8vL3dBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFBQS8vLy8vLzhBQUFEL0FBQUEvLy8vLy84QUFBRC8vLy8vL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC8vLy8vL3dBQUFQLy8vLy8vQUFBQS93QUFBUC8vLy8vL0FBQUEvLy8vLy84QUFBRC9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy84QUFBRC8vLy8vL3dBQUFQOEFBQUQvLy8vLy93QUFBUC8vLy8vL0FBQUEvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8vLy8vL0FBQUEvLy8vLy84QUFBRC9BQUFBLy8vLy8vOEFBQUQvLy8vLy93QUFBUDhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vLy93QUFBUC8vLy8vL0FBQUEvd0FBQVAvLy8vLy9BQUFBLy8vLy8vOEFBQUQvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vOEFBQUQvLy8vLy93QUFBUDhBQUFELy8vLy8vd0FBQVAvLy8vLy9BQUFBL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy9BQUFBLy8vLy8vOEFBQUQvQUFBQS8vLy8vLzhBQUFELy8vLy8vd0FBQVA4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy8vd0FBQVAvLy8vLy9BQUFBL3dBQUFQLy8vLy8vQUFBQS8vLy8vLzhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS8vLy8vLzhBQUFELy8vLy8vd0FBQVA4QUFBRC8vLy8vL3dBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFBQS8vLy8vLzhBQUFEL0FBQUEvLy8vLy84QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQLy8vLy8vQUFBQS93QUFBUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUFBL3dBQUFQOEFBQUQvQUFBQS93QUFBUDhBQUFEL0FBQUEvd0FBQVA4QUFBRC9BQUNzUVFBQXJFRUFBS3hCQUFDc1FRQUFyRUVINEt4QkIrQ3NRUWZnckVFSDRLeEJCK0NzUVFmZ3JFRUFBS3hCQUFDc1FRQUFyRUVBQUt4QkFBQ3NRUT09Ig0KCQkJCX0pOw0KCQkJCWJ0bi5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5TWVudXBvcHVwLmNsb25lTm9kZSh0cnVlKSk7DQoJCQkJcmV0dXJuIHRoaXMuZW1wdHlCdXR0b24gPSBidG47DQoJCQl9LA0KCQkJbmV3SXRlbShub2RlLCBuYW1lKSB7DQoJCQkJdmFyIG5ld0l0ZW0gPSB0aGlzWyJlbXB0eSIgKyBuYW1lXS5jbG9uZU5vZGUodHJ1ZSk7DQoJCQkJbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdJdGVtLCBub2RlLm5leHRTaWJsaW5nKTsNCgkJCQlpZiAobmFtZSA9PSAiQnV0dG9uIikgbmV3SXRlbS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgicG9zaXRpb24iLCAiYWZ0ZXJfc3RhcnQiKTsNCgkJCX0sDQoJCQlkZWxldGVJdGVtKG5vZGUpIHsNCgkJCQl2YXIgd2luID0gdGhpcy50b3Aobm9kZSk7DQoJCQkJaWYgKCF3aW4uY29uZmlybSgi0KPQtNCw0LvQuNGC0YwgPyIpKSByZXR1cm47DQoJCQkJbm9kZS5yZW1vdmUoKTsNCgkJCX0sDQoJCQltb3ZlVXAobm9kZSkgew0KCQkJCW5vZGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobm9kZSwgbm9kZS5wcmV2aW91c1NpYmxpbmcpOw0KCQkJfSwNCgkJCW1vdmVEb3duKG5vZGUpIHsNCgkJCQlub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5vZGUsIG5vZGUubmV4dFNpYmxpbmcubmV4dFNpYmxpbmcpOw0KCQkJfSwNCgkJCWNvcHlJdGVtKG5vZGUsIHBvcHVwKSB7DQoJCQkJdGhpcy50cmFuc2FjdGlvbk5vZGUgPSBub2RlLmNsb25lTm9kZSh0cnVlKTsNCgkJCQlwb3B1cC5xdWVyeVNlbGVjdG9yKCdtZW51aXRlbVt2YWx1ZT0icGFzdGVJdGVtIl0nKS5kaXNhYmxlZCA9IGZhbHNlOw0KCQkJfSwNCgkJCXBhc3RlSXRlbShub2RlKSB7DQoJCQkJbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLnRyYW5zYWN0aW9uTm9kZSwgbm9kZSk7DQoJCQl9LA0KCQkJaW1nQmFzZTY0KG5vZGUpIHsNCgkJCQl2YXIgb2JzID0gdGhpczsNCgkJCQl2YXIgcGlja2VyID0gbWFrZUZpbGVQaWNrZXIoKTsNCgkJCQlwaWNrZXIuYXBwZW5kRmlsdGVycyhwaWNrZXIuZmlsdGVySW1hZ2VzKTsNCgkJCQlwaWNrZXIuaW5pdCh0aGlzLnRvcChub2RlKSwgItCY0LfQvtCx0YDQsNC20LXQvdC40LUiLCBwaWNrZXIubW9kZU9wZW4pOw0KCQkJCXBpY2tlci5vcGVuKHtkb25lOiBmdW5jdGlvbihyZXN1bHQpIHsNCgkJCQkJaWYgKHJlc3VsdCAhPSBwaWNrZXIucmV0dXJuT0spIHJldHVybjsNCgkJCQkJdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7DQoJCQkJCXJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCgkJCQkJCWlmICghcmVhZGVyLnJlc3VsdCkgcmV0dXJuOw0KCQkJCQkJdmFyIG5hbWUgPSBub2RlLm5vZGVOYW1lOw0KCQkJCQkJIm1lbnVpdGVtIi5pbmNsdWRlcyhuYW1lKSAmJiBub2RlLmNsYXNzTGlzdC5hZGQobmFtZSArICItaWNvbmljIik7DQoJCQkJCQlub2RlLnNldEF0dHJpYnV0ZSgiaW1hZ2UiLCByZWFkZXIucmVzdWx0KTsNCgkJCQkJCW9icy5zYXZlKG5vZGUpOw0KCQkJCQl9DQoJCQkJCXJlYWRlci5yZWFkQXNEYXRhVVJMKG5ldyBGaWxlKHBpY2tlci5maWxlKSk7DQoJCQkJfX0pOw0KCQkJfSwNCgkJCWRpc2FibGVyczogew0KCQkJCW1vdmVVcChub2RlKSB7cmV0dXJuICFub2RlLnByZXZpb3VzU2libGluZ30sDQoJCQkJbW92ZURvd24obm9kZSkge3JldHVybiAhbm9kZS5uZXh0U2libGluZyB8fCBub2RlLm5leHRTaWJsaW5nLm5vZGVOYW1lID09ICJtZW51cG9wdXAifSwNCgkJCQlkZWxldGVJdGVtKG5vZGUpIHsNCgkJCQkJdmFyIGNvdW50ID0gbm9kZS5wYXJlbnROb2RlLmNoaWxkRWxlbWVudENvdW50Ow0KCQkJCQlyZXR1cm4gY291bnQgPT0gMSB8fCAobm9kZS5ub2RlTmFtZSA9PSAidG9vbGJhcmJ1dHRvbiIgJiYgY291bnQgPT0gMik7DQoJCQkJfSwNCgkJCQl0b3Aobm9kZSkge3JldHVybiAidG9vbGJhcmJ1dHRvbiBoYm94Ii5pbmNsdWRlcyhub2RlLm5vZGVOYW1lKTt9LA0KCQkJCW5ld01lbnVpdGVtKG5vZGUpIHtyZXR1cm4gdGhpcy50b3Aobm9kZSk7fSwNCgkJCQluZXdNZW51KG5vZGUpIHtyZXR1cm4gdGhpcy50b3Aobm9kZSk7fSwNCgkJCQluZXdTZXBhcmF0b3Iobm9kZSkge3JldHVybiB0aGlzLnRvcChub2RlKTt9LA0KCQkJCW5ld0J1dHRvbihub2RlKSB7cmV0dXJuICF0aGlzLnRvcChub2RlKTt9LA0KCQkJCWNvcHlJdGVtKG5vZGUpIHtyZXR1cm4gbm9kZS5ub2RlTmFtZSA9PSAiaGJveCI7fSwNCgkJCQlwYXN0ZUl0ZW0oKSB7cmV0dXJuICEoInRyYW5zYWN0aW9uTm9kZSIgaW4gdGhpcy5vYnMpO30sDQoJCQkJaW1nQmFzZTY0KG5vZGUpIHtyZXR1cm4gISJ0b29sYmFyYnV0dG9uIG1lbnUgbWVudWl0ZW0iLmluY2x1ZGVzKG5vZGUubm9kZU5hbWUpO30NCgkJCX0sDQoJCQljb250ZXh0UG9wdXBzaG93aW5nKHBvcHVwKSB7DQoJCQkJdGhpcy5kaXNhYmxlcnMub2JzID0gdGhpczsNCgkJCQl2YXIgbm9kZSA9IHBvcHVwLmxpbmtlZFRhcmdldDsNCgkJCQlmb3IodmFyIGtleSBpbiB0aGlzLmRpc2FibGVycykgew0KCQkJCQl2YXIgbWVudWl0ZW0gPSBwb3B1cC5xdWVyeVNlbGVjdG9yKGBtZW51aXRlbVt2YWx1ZT0iJHtrZXl9Il1gKTsNCgkJCQkJaWYgKG1lbnVpdGVtKSBtZW51aXRlbS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZXJzW2tleV0obm9kZSkgfHwgbm9kZS5ub2RlTmFtZSA9PSAibWVudXBvcHVwIjsNCgkJCQl9DQoJCQkJcG9wdXAucXVlcnlTZWxlY3RvcignbWVudWl0ZW1bdmFsdWU9Im9wZW5FZGl0b3IiXScpLmRpc2FibGVkID0gbm9kZS5ub2RlTmFtZSA9PSAiaGJveCI7DQoJCQl9LA0KDQovLwkJCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVESVRPUiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCgkJCWVkaXRvclhVTDogYA0KCQkJCTw/eG1sIHZlcnNpb249IjEuMCI/Pg0KCQkJCTw/eG1sLXN0eWxlc2hlZXQgaHJlZj0iY2hyb21lOi8vZ2xvYmFsL3NraW4vIj8+DQoJCQkJPD94bWwtc3R5bGVzaGVldCBocmVmPSJjaHJvbWU6Ly9jdXN0b21idXR0b25zL2NvbnRlbnQvY29kZWVkaXRvci5jc3MiIHR5cGU9InRleHQvY3NzIj8+DQoJCQkJPGRpYWxvZyB4bWxucz0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCINCgkJCQkJdGl0bGU9ItCY0LfQvNC10L3QuNGC0YwiDQoJCQkJCW9ubG9hZD0ib2JzID0gQ29tcG9uZW50cy51dGlscy5pbXBvcnQoJ3Jlc291cmNlOi8vZ3JlL21vZHVsZXMvU2VydmljZXMuanNtJylbJyR7c3RvcmFnZUlkfSddWycke29ic0lkfSddOyBvYnMuaW5pdEVkaXRvcih3aW5kb3cpOyINCgkJCQkJb25kaWFsb2dhY2NlcHQ9Im9icy5zZXRBdHRyaWJ1dGVzKHdpbmRvdyk7Ig0KCQkJCQlidXR0b25zPSJleHRyYTIsYWNjZXB0LGNhbmNlbCINCgkJCQkJYnV0dG9ubGFiZWxleHRyYTI9ItCj0LTQsNC70LjRgtGMINCw0YLRgNC40LHRg9GCIg0KCQkJCQlvbmRpYWxvZ2V4dHJhMj0ib2JzLmRlbGV0ZUF0dHJpYnV0ZSh3aW5kb3cpOyI+DQoJCQkJCTxoYm94IGFsaWduPSJjZW50ZXIiPg0KCQkJCQkJPGxhYmVsIHZhbHVlPSLQndC+0LLRi9C5INCw0YLRgNC40LHRg9GCIi8+DQoJCQkJCQk8dGV4dGJveCBmbGV4PSIxIiBtdWx0aWxpbmU9ImZhbHNlIiBvbmtleWRvd249Im9icy5vblRleGJveEtleWRvd24oZXZlbnQpOyIvPg0KCQkJCQkJPGJ1dHRvbiBsYWJlbD0i0JTQvtCx0LDQstC40YLRjCIgb25jb21tYW5kPSJvYnMubmV3QXR0cmlidXRlKHdpbmRvdywgdGV4dGJveC52YWx1ZSk7Ii8+DQoJCQkJCTwvaGJveD4NCgkJCQkJPHRhYmJveCBmbGV4PSIxIj4NCgkJCQkJCTx0YWJzLz4NCgkJCQkJCTx0YWJwYW5lbHMgZmxleD0iMSIvPg0KCQkJCQk8L3RhYmJveD4NCgkJCQk8L2RpYWxvZz4NCgkJCWAsDQoJCQlnZXQgZWRpdG9yVVJMKCkgew0KCQkJCWRlbGV0ZSB0aGlzLmVkaXRvclVSTDsNCgkJCQl2YXIgeHVsID0gdGhpcy5lZGl0b3JYVUwudHJpbSgpOw0KCQkJCXJldHVybiB0aGlzLmVkaXRvclVSTCA9ICJkYXRhOmFwcGxpY2F0aW9uL3ZuZC5tb3ppbGxhLnh1bCt4bWwsIiArIGVuY29kZVVSSUNvbXBvbmVudCh4dWwpOw0KCQkJfSwNCgkJCW9wZW5FZGl0b3Iobm9kZSkgew0KCQkJCXRoaXMubm9kZSA9IG5vZGU7IHRoaXMuZWxtID0gdGhpcy5pbnNlcnRFbGVtZW50KCJib3giKTsNCgkJCQlTZXJ2aWNlcy53dy5vcGVuV2luZG93KHRoaXMudG9wKG5vZGUpLCB0aGlzLmVkaXRvclVSTCwgIiIsDQoJCQkJCSJjaHJvbWUsbW9kYWwscmVzaXphYmxlLGNlbnRlcnNjcmVlbix3aWR0aD03MDAsaGVpZ2h0PTUwMCINCgkJCQksIG51bGwpOw0KCQkJfSwNCgkJCWluaXRFZGl0b3Iod2luKSB7DQoJCQkJZm9yKHZhciBzdHIgb2YgWyJ0YWJzIiwgInRhYnBhbmVscyIsICJ0ZXh0Ym94Il0pIHsNCgkJCQkJd2luW3N0cl0gPSB3aW4uZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzdHIpOw0KCQkJCX0NCgkJCQlmb3IodmFyIHtuYW1lLCB2YWx1ZX0gb2YgdGhpcy5ub2RlLmF0dHJpYnV0ZXMpIHsNCgkJCQkJdmFyIGlzVmFsID0gbmFtZSA9PSAidmFsdWUiOw0KCQkJCQl2YXIgdGFiID0gdGhpcy5hZGRUYWIod2luLCBuYW1lLCB2YWx1ZSwgaXNWYWwpOw0KCQkJCQlpZiAoaXNWYWwpIHRhYi5zdHlsZS5jc3NUZXh0ID0gImZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogbmF2eTsiOw0KCQkJCX0NCgkJCQlpZiAod2luLnRhYnMuc2VsZWN0ZWRJbmRleCA9PSAtMSkgd2luLnRhYnMuc2VsZWN0ZWRJbmRleCA9IDA7DQoJCQl9LA0KCQkJYWRkVGFiKHdpbiwgbmFtZSwgdmFsdWUsIHNlbCkgew0KCQkJCXZhciB0YWIgPSB0aGlzLmluc2VydEVsZW1lbnQoInRhYiIsIHdpbi50YWJzLCB7bGFiZWw6IG5hbWV9KTsNCgkJCQl0YWIubGlua2VkQ2JlZGl0b3IgPSB0aGlzLmluc2VydEVsZW1lbnQoImNiZWRpdG9yIiwgd2luLnRhYnBhbmVscywgew0KCQkJCQljbGFzczogImN1c3RvbWJ1dHRvbnMtZWRpdG9yLWNvZGVCb3giLA0KCQkJCQltdWx0aWxpbmU6ICJ0cnVlIiwNCgkJCQkJZmxleDogIjEiLA0KCQkJCQl2YWx1ZTogdmFsdWUNCgkJCQl9KTsNCgkJCQlpZiAoc2VsKSB7DQoJCQkJCXdpbi50YWJzLnNlbGVjdGVkSXRlbSA9IHRhYjsNCgkJCQkJdGFiLmxpbmtlZENiZWRpdG9yLmZvY3VzKCk7DQoJCQkJfQ0KCQkJCXJldHVybiB0YWI7DQoJCQl9LA0KCQkJbmV3QXR0cmlidXRlKHdpbiwgbmFtZSkgew0KCQkJCW5hbWUgJiYgdGhpcy5hZGRUYWIod2luLCBuYW1lLCAiIiwgdHJ1ZSk7DQoJCQkJd2luLnRleHRib3gudmFsdWUgPSAiIjsNCgkJCX0sDQoJCQlvblRleGJveEtleWRvd24oZSkgew0KCQkJCWlmIChlLmtleUNvZGUgPT0gZS5ET01fVktfUkVUVVJOKSB7DQoJCQkJCWUucHJldmVudERlZmF1bHQoKTsNCgkJCQkJdGhpcy5uZXdBdHRyaWJ1dGUoZS50YXJnZXQub3duZXJHbG9iYWwsIGUudGFyZ2V0LnZhbHVlKTsNCgkJCQl9IGVsc2UgdHJ5IHsNCgkJCQkJdmFyIGF0dHIgPSBlLnRhcmdldC52YWx1ZSArIGUua2V5Ow0KCQkJCQl0aGlzLmVsbS5zZXRBdHRyaWJ1dGUoYXR0ciwgdHJ1ZSk7DQoJCQkJCXRoaXMuZWxtLnJlbW92ZUF0dHJpYnV0ZShhdHRyKTsNCgkJCQl9IGNhdGNoKGV4KSB7DQoJCQkJCWUucHJldmVudERlZmF1bHQoKTsNCgkJCQl9DQoJCQl9LA0KCQkJc2V0QXR0cmlidXRlcyh3aW4pIHsNCgkJCQlmb3IodmFyIHRhYiBvZiB3aW4udGFicy5jaGlsZE5vZGVzKSB7DQoJCQkJCXZhciB2YWwgPSB0YWIubGlua2VkQ2JlZGl0b3IudmFsdWU7DQoJCQkJCXRoaXMubm9kZS5zZXRBdHRyaWJ1dGUodGFiLmxhYmVsLCB2YWwpOw0KCQkJCX0NCgkJCQl0aGlzLnNhdmUoKTsNCgkJCX0sDQoJCQlkZWxldGVBdHRyaWJ1dGUod2luKSB7DQoJCQkJdmFyIHRhYiA9IHdpbi50YWJzLnNlbGVjdGVkSXRlbTsNCgkJCQl2YXIgYXR0ciA9IHRhYi5sYWJlbDsNCgkJCQlpZiAoIXdpbi5jb25maXJtKCLQo9C00LDQu9C40YLRjCDQsNGC0YDQuNCx0YPRgiAiICsgYXR0ciArICIgPyIpKSByZXR1cm47DQoJCQkJdGhpcy5ub2RlLnJlbW92ZUF0dHJpYnV0ZSh0YWIubGFiZWwpOw0KCQkJCXRhYi5saW5rZWRDYmVkaXRvci5yZW1vdmUoKTsgdGFiLnJlbW92ZSgpOw0KCQkJCXdpbi50YWJzLnNlbGVjdGVkSW5kZXggPSAwOw0KCQkJfSwNCgkJCXNhdmUobm9kZSA9IHRoaXMubm9kZSkgew0KCQkJCXZhciBib3ggPSBub2RlLm93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5ib3hJZCk7DQoJCQkJaWYgKCFib3gpIHJldHVybjsNCgkJCQlib3gucmVtb3ZlQ2hpbGQoYm94LmxpbmtlZFBvcHVwKTsNCgkJCQl2YXIgeHVsID0gYm94LmlubmVySFRNTC5yZXBsYWNlKC9cdC9nLCAiJiN4OTsiKS5yZXBsYWNlKC9cbi9nLCAiJiN4QTsiKS5yZXBsYWNlKC9cci9nLCAiJiN4RDsiKTsNCgkJCQl2YXIgbGluayA9IGN1c3RvbWJ1dHRvbnMubWFrZUJ1dHRvbkxpbmsoImVkaXQiLCBfaWQpOw0KCQkJCXZhciBwYXJhbSA9IGN1c3RvbWJ1dHRvbnMuY2JTZXJ2aWNlLmdldEJ1dHRvblBhcmFtZXRlcnMobGluayk7DQoJCQkJcGFyYW0gPSBwYXJhbS53cmFwcGVkSlNPYmplY3QgfHwgcGFyYW07DQoJCQkJcGFyYW0uaGVscCA9IHh1bDsNCgkJCQljdXN0b21idXR0b25zLmNiU2VydmljZS5pbnN0YWxsQnV0dG9uKHBhcmFtKTsJDQoJCQl9LA0KDQovLwkJCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1JU0MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCgkJCWluc2VydEVsZW1lbnQoZWxlbWVudCwgcGFyZW50LCBhdHRyaWJ1dGVzLCBiZWZvcmUgPSBudWxsKSB7DQoJCQkJdmFyIG5vdEV4aXN0ID0gdHlwZW9mIGVsZW1lbnQgIT0gIm9iamVjdCI7DQoJCQkJaWYgKG5vdEV4aXN0KSBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50KTsNCgkJCQlpZiAobm90RXhpc3QgJiYgYXR0cmlidXRlcykgew0KCQkJCQlmb3IodmFyIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzKSB7DQoJCQkJCQlhdHRyaWJ1dGUgPT0gImRhdGEiIHx8IGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgYXR0cmlidXRlc1thdHRyaWJ1dGVdKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlwYXJlbnQgJiYgcGFyZW50Lmluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmUpOw0KCQkJCXJldHVybiBlbGVtZW50Ow0KCQkJfSwNCgkJCXRvcChub2RlKSB7DQoJCQkJdmFyIHdpbiA9IG5vZGUub3duZXJHbG9iYWw7DQoJCQkJaWYgKCEod2luIGluc3RhbmNlb2YgQ2hyb21lV2luZG93KSkNCgkJCQkJd2luID0gU2VydmljZXMud20uZ2V0TW9zdFJlY2VudFdpbmRvdygibmF2aWdhdG9yOmJyb3dzZXIiKTsNCgkJCQlyZXR1cm4gd2luOw0KCQkJfQ0KCQl9Ow0KCQlzdG9yYWdlLnNldChvYnNJZCwgb2JzKTsNCgkJb2JzLmluaXQoKTsNCgl9DQoJZnVuY3Rpb24gZGVzdHJ1Y3RvcihyZWFzb24pIHsNCgkJaWYgKHJlYXNvbls1XSAhPSAiZSIpIHJldHVybjsNCgkJdmFyIG9icyA9IHN0b3JhZ2UuZ2V0KG9ic0lkLCBudWxsKTsNCgkJaWYgKG9icykgew0KCQkJb2JzLmRlc3Ryb3koKTsNCgkJCXN0b3JhZ2Uuc2V0KG9ic0lkLCBudWxsKTsNCgkJfQ0KCX0NCglhZGREZXN0cnVjdG9yKHJlYXNvbiA9PiB7DQoJCWRlc3RydWN0b3IocmVhc29uKTsNCgkJc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkJCWN1c3RvbWJ1dHRvbnMucGFsZXR0ZS5xdWVyeVNlbGVjdG9yKCd0b29sYmFyYnV0dG9uW2lkPSInICsgX2lkICsgJyJdJykgJiYgZGVzdHJ1Y3RvcigiZGVsZXRlIik7DQoJCX0sIDUwMCk7DQoJfSk7DQp9KSgpOw0K

Отредактировано Dumby (05-03-2016 17:23:03)

Отсутствует

 

№983905-03-2016 18:16:50

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

Re: Custom Buttons

asn1i6m пишет

Есть букмарклет, имеющий следущий код:

Выделить код

Код:

javascript:(function(){location.replace(location.href.search(/\?cm_interactive/)!=-1?location.href.replace(/\?cm_interactive.*/,''):location.href.replace(/#.*|$/,'?cm_interactive'));})();

Как на его основе создать кнопку?

Выделить код

Код:

loadURI("javascript:(function(){location.replace(location.href.search(/\\?cm_interactive/)!=-1?location.href.replace(/\\?cm_interactive.*/,''):location.href.replace(/#.*|$/,'?cm_interactive'));})()");

Отсутствует

 

№984005-03-2016 18:39:24

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

Re: Custom Buttons

bunda1
Dumby
Спасибо. :beer:

А нет идей почему gBrowser.selectedTab = gBrowser.addTab к этому приводит? И дело не в графических глюках, ибо страница полностью функциональной становится, а не просто ее изображение на других вкладках остается. Ничего подходящего в консоли не видно.

Отсутствует

 

№984105-03-2016 20:52:08

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 932
UA: Firefox 44.0

Re: Custom Buttons

bunda1, Dumby
помогите решить проблему
https://forum.mozilla-russia.org/viewtopic.php?pid=709324#p709324

Отсутствует

 

№984206-03-2016 09:43:52

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

Re: Custom Buttons

turbot пишет

А нет идей почему gBrowser.selectedTab = gBrowser.addTab к этому приводит?

У меня идей нет, однако, вроде,
false — принудительно
null — респект browser.tabs.loadInBackground

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

Выделить код

Код:

//gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, true, false);
                    gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, false, false);

Отсутствует

 

№984306-03-2016 10:23:05

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

Re: Custom Buttons

turbot пишет

А нет идей почему gBrowser.selectedTab = gBrowser.addTab к этому приводит?

Потому что правильно так:

Выделить код

Код:

gBrowser.selectedTab = gBrowser.addTab(submission.uri.spec);

а не так:

Выделить код

Код:

gBrowser.selectedTab = gBrowser.addTab(submission.uri.spec, null, null, submission.postData, true, false);

Отсутствует

 

№984411-03-2016 20:29:39

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 932
UA: Firefox 45.0

Re: Custom Buttons

bunda1, Dumby, Infocatcher и все понимающие
подсобите по этому вопросу

Отсутствует

 

№984512-03-2016 13:30:28

thrower
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 190
UA: Firefox 45.0

Re: Custom Buttons

Есть полезное расширение - New Tab from Location Bar.
Но оно иногда вызывает зависание браузера.

Можно ли ему сделать замену в виде кнопки с всего одной функцией: введенное в адресной строке (urlbar) всегда открывать в новой вкладке. (?)

Отредактировано thrower (12-03-2016 13:34:48)

Отсутствует

 

№984612-03-2016 15:36:39

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

Re: Custom Buttons

thrower пишет

Можно ли ему сделать замену в виде кнопки с всего одной функцией: введенное в адресной строке (urlbar) всегда открывать в новой вкладке. (?)

То есть нажатием кнопки открыть адресс из адресной строки в новой вкладке?

Отсутствует

 

№984712-03-2016 19:11:06

thrower
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 190
UA: Firefox 45.0

Re: Custom Buttons

bunda1
Нет, чтобы по умолчанию (by default) адрес открывался в новой вкладке.

Отсутствует

 

№984812-03-2016 20:14:23

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 28.0
Веб-сайт

Re: Custom Buttons

bunda1 пишет
Ki_rrrilll пишет

Можно ли определить направление вращения колесика, если обработчик события добаляется не eventListener-ом, а просто
Elem.onwheel = function(e){......}

Вращения колесика вертикально:

Выделить код

Код:

e.deltaY < 0

горизонтально:

Выделить код

Код:

e.deltaX < 0

А что значит вращение колёсика горизонтально?
Крутить колёсико и одновременно двигать мышку?


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№984912-03-2016 20:48:52

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

Re: Custom Buttons

В [nightly] опять все поломалось из-за 1254752 – Remove deprecated functions from nsIIoservice. Подскажите пожалуйста, как поправить CustomButtonsService.js по образцу. Пытался сам, но что-то не взлетело. shuffle.gif

Отсутствует

 

№985012-03-2016 20:50:09

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

Re: Custom Buttons

difabor пишет

А что значит вращение колёсика горизонтально?

Это наверно для необычной мыши.

Добавлено 12-03-2016 20:50:16

thrower пишет

bunda1
Нет, чтобы по умолчанию (by default) адрес открывался в новой вкладке.

:/ в инициализацию:

Выделить код

Код:

// Открывать адрес из адресной строки в новой вкладке, от 12.03.2016. .................
(()=> {
   var src = "gURLBar.handleCommand = " + gURLBar.handleCommand.toString(),
       res = src.replace('altEnter)', 'true)').replace('if (isMouseEvent)', 'if (false)');
   eval(res);
   addDestructor(()=> eval(src) );
})();

Отредактировано bunda1 (12-03-2016 20:50:16)

Отсутствует

 

Board footer

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