>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Скрипты http://forum.mozilla-russia.org/viewforum.php?id=37 >Greasemonkey http://forum.mozilla-russia.org/viewtopic.php?id=5499 |
alc > 10-10-2005 15:10:04 |
После перехода на FF 1.5 beta перестала работать greasemonkey. В консоли пишет
Тестировал на различных сборках от первой до второй беты, везде аналогично... Кто-нибудь победил эту засаду? |
Unghost > 10-10-2005 15:27:58 |
http://userscripts.org/greasemonkey-0.6.2.xpi |
alc > 10-10-2005 16:02:58 |
Спасибо, н почему ее на http://greasemonkey.mozdev.org не выкладывают? |
Unghost > 11-10-2005 05:02:58 |
alc |
Mishail > 14-11-2005 03:17:03 |
Кстати, GM для 1.5 обновился до версии 0.6.3. Ни на сайте, ни на GreaseBlog'е про это ни слова не было. Случайно увидел в maillist'е. Брать тут. Выделить код Код:So, changes in this rel: x Remove prefs when removing scripts. x arguments.join and IURI fixes for DPb2 |
Al_H > 14-11-2005 13:57:24 |
И, кстати, он улучшился заметно. |
Modex > 14-11-2005 15:33:18 |
То что улучшился это хорошо... Только вот он у меня скрипты не хочет инсталить... Вроде тоже баг, а когда исправят неизвестно... |
Mishail > 14-11-2005 15:38:37 |
Modex |
Unghost > 14-11-2005 20:34:05 |
==> Обсуждение расширений |
Modex > 15-11-2005 06:55:07 |
Mishail |
Mishail > 15-11-2005 07:01:54 |
Modex Выделить код Код:-------------- next part -------------- A non-text attachment was scrubbed... Name: greasemonkey-0.6.3.xpi Type: application/x-xpinstall Size: 41586 bytes Desc: not available Url : http://mozdev.org/pipermail/greasemonkey/attachments/20051016/d90681bf/greasemonkey-0.6.3-0001.bin Сохрани, поменяй расширение на xpi ну и вперед |
Modex > 15-11-2005 07:11:01 |
Спасибо! Я как раз с расширениями не разобрался... P.S.: Все равно ошибку выдает и ничего не инсталит... |
Mishail > 16-11-2005 05:25:04 |
Modex http://userscripts.org/greasemonkey-0.6.3.xpi Да, кстати, а что за скрипт ты пытаешься установить? Дай ссылку плиз. |
Modex > 16-11-2005 19:57:15 |
Mishail |
Mishail > 17-11-2005 02:01:00 |
Modex |
Modex > 17-11-2005 19:25:07 |
Mishail |
Mishail > 18-11-2005 01:56:23 |
Modex |
Modex > 18-11-2005 23:18:31 |
Mishail
|
Al_H > 19-11-2005 15:45:26 |
* Апдейт: Если Вы инсталлируете Greasemonkey 0.6.2 при том что не стоит никакая предыдущая версия, установка скриптов работать не будет. Вы увидите ошибку "file not found". Мы скоро обновим расширение для исправления бага. Приносим свои извинения. |
Modex > 19-11-2005 20:48:08 |
Al_H |
Mishail > 01-12-2005 03:21:25 |
Greasemonkey 0.6.4. Подробности тут |
Modex > 01-12-2005 18:03:49 |
Мистика... На чистом профиле все ставится (по поводу работы еще не проверял), а на "старом" ничего все равно не хочет устанавливать скрипты... Профиль переставлять заново неохота... |
Mishail > 02-12-2005 02:17:23 |
Modex
|
Modex > 02-12-2005 13:26:34 |
Mishail |
Unghost > 03-12-2005 02:20:12 |
Просто для сведения: |
stEp > 04-02-2006 19:42:35 |
Проблема: Вводные: Дополнительно проверил в Mozilla Firefox 1.0.7 с GreaseMonkey 0.5.3 - результат тот же. Помогите решить проблему. Может быть этот скрипт вообще не работает в Firefox? |
stEp > 06-02-2006 20:03:52 |
Форумчане, если вам нетрудно, то, пожалуйста, подтвердите/опровергните хотя бы наличие проблемы, А то бьюсь как рыба об лёд... JavaScript то всё равно не знаю, да и куда ещё копать тоже не знаю... |
Mishail > 07-02-2006 02:28:55 |
stEp |
stEp > 07-02-2006 16:36:13 |
Боюсь что это совсем даже не альтернатива... |
Mishail > 08-02-2006 02:37:21 |
Зато работает |
e-travel > 13-02-2006 22:06:37 |
раскопал старый материал StraNNicK'a из его блога: Greasemonkey - пять полезных скриптов, еще выцепил от туда ссылки на материалы о том как прикрутить GreaseMonkey к Опера (ногами не пинать, это так, для общего развития ): может пригодится кому |
KML > 24-07-2006 22:11:24 |
Объясните убогому, как в это чудо техники установить свой скрипт. Т.е. я его написал, он лежит у меня в C:\GM\test.js Выделить код Код:Failed to launch editor: [Exception... "Component returned failure code: 0x80520003 (NS_ERROR_FILE_EXECUTION_FAILED) [nsIMIMEInfo.launchWithFile]" nsresult: "0x80520003 (NS_ERROR_FILE_EXECUTION_FAILED)" location: "JS frame :: chrome://greasemonkey/content/utils.js :: openInEditor :: line 121" data: no] :::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4 |
Mishail > 25-07-2006 15:10:20 |
http://diveintogreasemonkey.org/install/userscript.html |
ламер > 28-07-2006 03:37:42 |
обьясните мне как мать ево вообще установить на пальцах обьясните плиз |
No.varg > 02-08-2006 08:25:02 |
Как NoScript заставить его игнорировать? |
KML > 18-08-2006 20:23:50 |
Пара вопросов по Greasemonkey: |
Jenyay > 19-08-2006 23:27:10 |
Переставил firefox. И теперь при открытии файла скриптов у GreaseMonkey не воявляется панель, где предлагается установить скрипт. Не подскажете в чем может быть дело? Firefox 1.5.0.6 рус. |
Al_H > 20-08-2006 10:31:27 |
Jenyay |
Jenyay > 20-08-2006 10:47:04 |
Al_H Нет, поставил с нуля. Переуставливал, не помогло. Поставил английский firefox - не помогло. Ставил GreaseMonkey на чистый Flock - то же самое. |
Al_H > 20-08-2006 12:13:21 |
Очень странно. Возможно, у Вас что-то отключено. Только что проверил - у меня все работает. |
Jenyay > 20-08-2006 16:06:00 |
Снес старый профиль, который после переустановки импортировал через MozBackup, поставил расширение - все работает. |
Infant > 30-04-2007 14:17:43 |
memini |
Ламерюга > 31-05-2007 21:18:55 |
Доброе время суток,друзья!Вот,решил опробовать это новое для меня расширение-сразу же возник вопрос-как эти *js'ы |
Modex > 31-05-2007 21:27:09 |
Файл обязательно должен заканчиваться на <название>.user.js |
Ламерюга > 31-05-2007 22:46:47 |
Так,да,стоит юзер разумеется! |
Modex > 31-05-2007 22:57:11 |
Вообще когда на сайте нажимаете Install Script отобразится окно установки (что-то вроде). |
Ламерюга > 31-05-2007 23:27:47 |
Ы-ы-ы-ы!Как все просто оказалось!А я-то мудрил!Сохранял файлы скриптов на диск..потом чего-то,как-то заинсталить пытался!Спасибо Modex |
SAdmn > 19-10-2007 19:33:40 |
Может кто-нибудь помочь переделать |
fufel > 01-11-2007 12:26:35 |
я через дополнение "greasemonkey" научился кое как писать скрипты, и вот мне необходима как-то сохранять переменные между страницами. Посоветуйте как. |
T9Key > 03-03-2008 19:06:56 |
Всем привет Пробовал удалять greasemonkey заново ставить раз пять , даже решил версию более раннюю поставить , но эффект тоже , скрипты не скачиваются и не устанавливаются. В чем проблема то не могу понять |
skywoker23 > 26-03-2008 08:54:25 |
решил протестировать недавно скачанный скрипт " vkmusicscript " - для загрузки треков вкладываемых пользователями "В контакте" на сайте. |
Infocatcher > 26-03-2008 08:57:42 |
А если */vkontakte.ru/* ? Добавлено Wed Mar 26 08:58:39 2008 : |
Infocatcher > 29-03-2008 21:56:27 |
BloodCoder пишет
Вполне возможно. |
koslayn > 25-05-2008 12:21:14 |
Спасибо помогло, предлагаю это в начало темы написать и закрепить а то сразу не понятно в чём проблема возникает при установке. |
Shura > 08-07-2008 16:26:16 |
Подскажите со скриптом, мне надо заменить код вида Выделить код Код:<SCRIPT language="JavaScript"> <!-- window.moveTo(0,0); window.resizeTo(screen.width,screen.availHeight); //--> </SCRIPT> на что-то своё или удалить совсем. Как это сделать? Только не предлагайте NoScript, мне остальные скрипты нужны, надо только этот модифицировать или удалить. |
baalexxx > 24-07-2008 02:27:55 |
Имеется расширение, конкретно - Google Bar Lite. У него есть элемент, текстовое поле с выпадающим меню с id GBL-SearchBox. |
Minor > 28-07-2008 03:00:52 |
Какая кодовая страница в GreaseMonkey используется? Почему такая строчка работает: а такая нет: И как сделать, чтоб работало? |
Forest > 28-07-2008 16:27:09 |
Minor
Может utf8? |
Minor > 03-08-2008 07:08:28 |
А можно ли её сменить? Или как с неё перекодировать строку в нормальные Windows-1251 и обратно? |
Forest > 03-08-2008 11:16:26 |
Minor
Для файла? Можно. Многие редакторы умеют. Вроде даже блокнот умеет (кодировку можно выбрать при Сохранить как). |
Minor > 04-08-2008 07:21:20 |
Для расширения GreaseMonkey. Добавлено Mon Aug 4 07:37:59 2008 : |
Minor > 04-08-2008 08:53:33 |
И ещё попутный вопрос, каким жаваскриптовым кодом преобразовать символы в номера симвлов? Ну там вместо 'a' - 224 и т. п. Чтоб мне самому попробовать определниться с идиотскими кодировками. |
Forest > 04-08-2008 11:59:17 |
Minor
Ну вообще-то файлы для расширений с локализованными ресурсами должны быть в utf8 - это вроде бы обязательное требование.
Ну если очень хочется - вот например Character Set Converters. |
pr0zz > 21-08-2008 16:46:59 |
Ребят, не подскажите? Есть ли в GreaseMonkey возможность сохранения глобальной переменной? |
pr0zz > 21-08-2008 17:39:45 |
Уже нашел ответ на свой вопрос! С помощью GM_setValue и GM_getValue можно записывать глобальные переменные! |
Z&N > 03-10-2008 06:16:37 |
|
olegop > 03-10-2008 14:28:57 |
Z&N |
MadMan > 04-10-2008 10:11:30 |
ого, расширение 2Мб!!! |
Lain_13 > 06-10-2008 12:39:13 |
MadMan |
MadMan > 06-10-2008 14:08:46 |
Lain_13 |
Lain_13 > 06-10-2008 19:18:27 |
Удивительная особенность гризфаера. Хоть он и весит 2 Мб, но сразу после установки выкачивает ещё 2 -- обновление базы. Внимание вопрос -- а зачем они прошивают старую базу в расширение? |
Drug0y > 28-10-2008 23:59:20 |
может кто-нить написать гризманки скриптдля торенц ру, чтобы рядом с названием раздачи (заголовок фильма) появлялась кнопочка, нажав на которую все символы от "/" до "(" из заголовка "#H1(class=maintitle)" копировались в поисковую форму сайта imdb.com (или другого подобного) и цитировался рейтинг фильма в рамочку прям рядом с кнопкой? было б круто |
floader > 18-02-2009 12:27:29 |
Возникла проблема, во время создания скрипта, может кто поможет
при выборе редактора возникает вот такая ошибка
Заранее благодарен! |
ПротопопулуS > 18-02-2009 18:11:22 |
Присоединяюсь к вышезаданному вопросу!!! У меня та же проблема на винде (на Убунте пока не пытал) |
Arraktur > 18-02-2009 23:24:45 |
А русских букв или спец. символов в пути к редактору нет? |
ПротопопулуS > 18-02-2009 23:46:21 |
Лично я извращался как только мог: |
floader > 19-02-2009 13:41:46 |
ПротопопулуS |
ПротопопулуS > 19-02-2009 18:03:25 |
Тут по-моему следует баг-репорт писать автору... |
floader > 21-02-2009 18:15:19 |
К редактору нет, а вот к папке где хранятся скрипты есть. |
ПротопопулуS > 21-02-2009 18:28:29 |
Но тем не менее баг с этим остается! |
Arraktur > 21-02-2009 20:25:02 |
Аа. Понятно. У меня уже давно учетка в латинице. Просто много софта не распознают кирилицу в путях... |
PsiOperator > 10-03-2009 16:10:12 |
Приветствую всех. Возможно кто-нибудь знает ответ на следующий вопрос: Зачем это надо: есть greasemonkey скрипт и есть сайт, для некоторых страниц которого он работает. Сайт посещается с работы (пн-пт) и из дома (сб-вс). При работе скрипта, он периодически сохраняет некоторый набор переменных через функцию GM_SetValue, а при начале работы читает через GM_GetValue . Требуется синхронизировать эти данные между рабочим и домашним компьютером 1 раз в неделю З.Ы. Я знаю, где хранятся куки для сайтов и теоретически мог бы попробовать переписать скрипт так, чтобы он сохранял все переменные в куки - их синхронизировать легче, однако скрипт весьма большой и часто обновляется автором - менять каждый раз способ сохранения переменных не слишком правильно З.З.Ы. Всем спасибо за внимание, вопрос больше не актуален. Если кто-то еще столкнется с такой же проблемой, то ответ ниже: |
artpetroff > 01-04-2009 12:36:01 |
Всем привет. Кто-нибудь сталкивался с проблемой кодировок при выполнении функции GM_xmlhttpRequest? Вместо русских букв приходят ромбики. У страницы в заголовке (если зайти просто браузером) написано . и даже - не помогло. Заранее спасибо. Upd: Upd(2): Выделить код Код:var req = new XMLHttpRequest(); req.open('GET', '.......', true); req.overrideMimeType('text/html; charset=windows-1251'); |
artpetroff > 10-04-2009 20:15:10 |
Всем привет ещё раз, пишу скрипт, в котором нужно сохранять некую информацию в локальный файл (её достаточно много и хочется иметь отдельный файл для дальнейшей обработки, поэтому GM_setValue - не выход), где он будет расположен - абсолютно неважно (можно в папку профиля, если такое будет проще). Наткнулся на такой пример: Выделить код Код:try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //(*)location.href = "javasсript:netscape.security.PrivilegeManager.enablePrivilege( 'UniversalXPConnect')"; var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); //проверяем ОС if (navigator.userAgent.indexOf("Win") != -1) { file.initWithPath("c:\foo.txt"); } else { file.initWithPath("/foo.dat"); } if (!file.exists()) { file.create(file.NORMAL_FILE_TYPE, 0644); } var ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var uri = ioService.newFileURI(file); var channel = ioService.newChannelFromURI(uri); var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); outputStream.init(file, 0x20 | 0x02, 00004, null); var buffer = "This is a testn"; outputStream.write(buffer, buffer.length); outputStream.flush(); outputStream.close(); } catch (e) { alert(e); } Рядом с ним было сказано: установить дополнение jslib_current_signed (установил, хотя и не знаю, зачем). Собственно, вопрос: что делать?) Спасибо за внимание. |
kopernick > 20-04-2009 19:36:52 |
У меня проблема с vkontakte. Скачал скрипт отсюда - http://userscripts.org/scripts/show/16985. Он позволяет скачивать треки и находит тексты песен. Тексты он и правда находит, а вот скачивать не хочет - включается воспроизведение. К уже вписанному адресу ашttp://vkontakte.ru/* добавил ашttp://*.vkontakte.ru/* - не помогло. В чем может быть проблема? |
VpsK > 30-08-2009 21:53:28 |
народ подскажите где глянуть сами скрипты а то команды скрипта почему то не активно в меню(с этим вроде разобрался)....хотел глянуть как пишут их....вобщем надо сделать чтоб на странице открытой, типа кнопку в удобное для меня место, которая бы при нажатии например переходила далее, ссылка на далее имеется |
Зверь > 06-09-2009 13:29:03 |
Помогите сделать скрипт который бы мог брать данные из формы с сайта. Есть html форма с <input>-ми из которых потом все отправляется через POST. Приведите пример как эти данные параллельно записывать в файл в виде имя = значение. Буду очень признателен если кто-то напишет пример, т.к. сам не силен в js. |
Ru5laN92 > 18-09-2009 22:16:06 |
А на firefox 3.5.3 greasemonkey работает? |
Jarichek > 18-09-2009 22:19:46 |
Ru5laN92 пишет
конечно работает. |
Орец > 21-09-2009 12:15:20 |
Попробовал удалить фрейм конструкцией типа: Выделить код Код:var id; id = document.getElementById('menu'); if (id) { id.parentNode.removeChild(id); } где "menu" - это название фрейма. |
DEATH 999 > 10-11-2009 17:04:20 |
Собственно, нужна помощь. Кто ни будь может модифицировать скрипт letitbit.net helper [2009-04-19], предназначенный для облегчения скачивания с файлообменника скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. Посмотреть, как изменён дизайн файлообменника можно на скрытый текст Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. Раньше страница для бесплатного скачивания выглядела так: После нажатия кнопочки "скачать файл" перекидывает на другую страницу: |
DEATH 999 > 19-11-2009 01:45:09 |
Что, ни кто не может помочь? |
GrearKir > 19-11-2009 19:26:25 |
Почти не надеюсь. Но, может быть, кто-то подскажет скрипт для Greasemonkey для поиска нескольких слов на странице в границе одного предложения. Например, я ищу выражение "купить дом", а скрипт покажет (или подсчитает), эти слова в предложении "Купить красивый дом". Но только в границе предложения. Буду очень признателен. |
Inko7 > 19-12-2009 19:27:55 |
надеюсь тема еще не умерла... скрытый текст letitbit.net так, чтобы при нажатии для закачки на ссылку вида скрытый текст например, http://letitbit.net/download/7192.7c2f0ea4d2213020672e4af34/SetupAnyDVD6608.exe.html автоматически после открытия страницы заполнялось поле пароля нужными данными и сам нажимался ентер для перехода на страницу с уже готовыми ссылками! Такое может получиться? |
Dizi > 30-12-2009 16:00:47 |
Подскажите как в форму забросить текст из файла. Зарание спасибо |
fattal > 02-01-2010 22:03:14 |
Я вот задался одним вопросом. Думаю, тут все или почти все юзают torrents.ru. На данном ресурсе главная страница, говоря по-простому, удалено, и скроллить постоянно неудобно (думаю, и не мне одному). Возможно ли реализовать такой скрипт, чтоб разделы можно было б скрыть за спойлерами? Если да, то откуда начать копать лучше всего? Замечание п. 3.3 |
wolfxr > 04-01-2010 19:03:20 |
Народ почему greasemonkey неработает в minefield'е ? это можно как нить исправить? установил принудительную совместимость :::: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.3a1pre) Gecko/20100103 Minefield/3.7a1pre (.NET CLR 3.5.30729) Проблема решена. Поставил версию указанную в этом сообщении http://forum.mozilla-russia.org/viewtopic.php?pid=391348#p391348 и все стало работать. А почему же тогда последняя dev_версия неработает... |
Minor > 17-01-2010 00:48:56 |
Вот у меня такой код скрипта. Выделить код Код:document.getElementById('Div1').innerHTML = '<a href=javascript:MyFunc()>My Function</a>'; function MyFunc() {alert('Okey')}; Он ищет тег <div ID=Div1></div> вставляет в него ссылку, при клике на которую вызывается функция MyFunc, которая выводит надпись "Okey". Всё это прекрасно работает, если просто вставить скрипт в страничку Но когда я вставляю это в скрипт Greasemonkey и применяю его к страничке, то ссылка выводится, но при клике на неё ничего не происходит. Почему? Если принудительно приписать ссылке addEventListener("click", ... , то она будет срабатывать и для сайтов. Но это неудобно. Как сделать, чтобы не надо было приписывать addEventListener или есть ли такая функция, которая приписывала бы все addEventListener'ы автоматически? В чём тут дело? |
Infocatcher > 17-01-2010 02:43:54 |
Minor пишет
А тут или удобно, или безопасно: http://wiki.greasespot.net/XPCNativeWrapper. |
Minor > 17-01-2010 07:00:05 |
Infocatcher Infocatcher пишет
Я не понял, в чём смысл этой ихней паранойи? Почему они боятся, что кто-то вставит обычную ссылку, но не боятся, что кто-то сделает тоже самое, только через addEventListener? Ещё одна ипостась этой проблемы. Выделить код Код:var k1 = document.getElementById('Div1').innerHTML document.getElementById('Div1').innerHTML = k1; После этого все ссылки на скрипты которые были в Div1 перестают работать. Что мне делать? |
Infocatcher > 17-01-2010 18:18:55 |
Minor пишет
В том, что со страницы нельзя получить ссылку на обработчик, добавленный через addEventListener. Вообще, в Firefox 3 и выше повышенные привилегии просто так не получить. Но, с другой стороны, не просто же так оставили XPCNativeWrapper. Так что, если очень хочется, можно делать вот так: Выделить код Код:document.getElementById('Div1').innerHTML = '<a href=javascript:MyFunc()>My Function</a>'; unsafeWindow.MyFunc = function() {alert('Okey')}; Или как-то так:
Смотря что изначально находилось внутри Div1. |
Minor > 17-01-2010 22:07:00 |
Infocatcher Infocatcher пишет
Что вообще за привилегии такие? Зачем они нужны? Вообще это мой скрипт, мой браузер. Всё моё. Какое вообще их дело, чего я со своей страничкой делаю? Если у них мания преследования, то я здесь причём? Как это отключить? Alert я привёл только для примера. Чтобы показать, что не работает. Infocatcher пишет
Мне надо не конкретную функцию вручную вписывать. А универсальную функцию, которая бы перебирала все теги, искала все их события, и всё, что в их событиях вписано и перестало работать, и активировала бы обратно через addEventListener или каким угодно другим способом. Можно так сделать? То есть: Выделить код Код:// StartTag - стартовый тег, от которого и ниже надо восстановить все события. function AntiParanoics(StartTag) { var AllTags = StartTag.getElementsByTagName('*'); // 1) Далее надо перебрать все события которые к тегу привязаны. // 2) Потом перепривязать все эти события через addEventListener. } Как мне перебрать все события которые к тегу привязаны? Если такую функцию написать - будет большое благо, для всех кто пишет свои скрипты под Greasemonkey. Можно будет вставить вызов одной функции и не заниматься каждый раз геморроем. |
Infocatcher > 18-01-2010 02:15:59 |
У расширений и той части интерфейса, что написана на JavaScript, больше привилегий, чем у скриптов с посещаемых страниц, для них и нужны.
При том, что у браузера много пользователей. Можно написать самому себе небезопасное расширение, но нельзя делать так, чтобы оно было у всех/многих.
Во-первых, там обертка вида Во-вторых, просто так нельзя добавлять свои поля глобальному объекту страницы (который window) – только через прямое добавление полей к unsafeWindow.
По-моему, это проблема подхода. В том смысле, что проще изменить подход, чем делать универсальный велосипед. В любом случае, если не нужны GM-функции (и, скорее всего, поддержка других браузеров, которые могут не уметь E4X, который в данном случае упрощает написание строковых данных), достаточно делать вот так: Выделить код Код:location.href = "javascript: " + <![CDATA[ function xxx() { alert(0); } document.body.setAttribute("onclick", "xxx();"); ]]>.toString(); Тогда скрипт будет выполняться полностью в контексте страницы. |
Minor > 19-01-2010 07:48:23 |
Infocatcher Infocatcher пишет
В чём оно небезопасное то? То, что на страничке матерное слово напишет? Текст он и есть текст. Infocatcher пишет
Удобство в том, чтобы не менять своих привычек. Infocatcher пишет
Как я уже говорил в прошлом постинге, мне нужен не alert, а функция, которая бы нашла ВСЁ, что поотключали эти больные манией преследования, и сама бы это включила бы обратно, через addEventListener, или любым другим способом. |
Minor > 19-01-2010 10:02:54 |
Обнаружил, что если вызвать addEventListener несколько раз, то она добавит несколько вызовов на одну и туже функцию. Это как если бы при клике на ссылку, у вас бы открылось не одно, а сразу 10 одинаковых ссылок. Прям маразм крепчает. Всё через ... сделано. Существует ли фунция addEventListenerIfNeedit? Или addEventListenerOnce ? Или SetEventListener? Или FindAllEvents? Или RemoveAllEvents? Или что-нибудь, что даст простое решение этой проблемы. |
Inko7 > 19-01-2010 17:56:31 |
подскажите пожалуйста скрипт, с помощью которого можно просмотреть превью любой картинки подведя курсор мышки к ссылке на странице на эту картинку. |
Maxone > 19-01-2010 21:43:05 |
Inko7 пишет
Попробуй это |
Infocatcher > 20-01-2010 00:02:29 |
Minor пишет
Я привел код, запускающий скрипты так, как если бы они находились на странице. В таком случае нету ограничений, накладываемых обертками, потому как их нету за отсутствием взаимодействия кода с разными привилегиями.
Так во всех браузерах сделано. Даже в IE, но там методы иначе называются и аргументы чуть другие.
Не существует, но можно написать. |
Minor > 20-01-2010 01:38:27 |
Infocatcher Infocatcher пишет
Я вот мучаюсь, никак не могу написать. Как мне сделать SetEventListener вместо AddEventListener? Мой код: Выделить код Код:function SetEventListener(MyTag1, Event1, Func1) { // Сначала надо удалить ВСЕ старые события. Как это сделать? MyTag1.removeEventListener(Event1, MyTag1.handle, true); // Дальше надо установить новое событие. ATag.addEventListener(Event1, Func1, false); } // Вызов: MyTag1.addEventListener(MyTag1, "click", function() {MyFunc1()}); Не работает. Чего не так? Как исправить? Infocatcher пишет
То есть, чтобы МНОЮ же добавленные строчкой кода выше обработчики перебрать нужны ещё какие-то дополнительные привилегии? |
Infocatcher > 20-01-2010 02:54:39 |
Например, так: Выделить код Код:var p = "__listeners"; function removeListener(node) { if(p in node) { var evt = node[p]; node.removeEventListener(evt.type, evt.func, evt.useCapture); } } function addSingleListener(node, type, func, useCapture) { removeListener(node); node.addEventListener(type, func, useCapture); node[p] = { type: type, func: type, useCapture: useCapture }; } Добавляемый обработчик запоминается в свойстве "__listeners", перед повторным добавлением сначала снимается старый обработчик. Minor пишет
Чтобы перебирать все обработчики, нужен доступ к nsIEventListenerService, получить который могут только расширения. 20-01-2010 02:58:30
ATag нигде не объявлено. |
Minor > 20-01-2010 06:05:50 |
Infocatcher Infocatcher пишет
Заменил везде addEventListener на addSingleListener , но ничего не изменилось. Как появлялось несколько вызовов одной и той же функции при клике мышью, так и появляется. Infocatcher пишет
То есть функция addSingleListener одноразовая? Ну addEventListener - не одноразовая функция, и мне тоже нужна не одноразовая. Infocatcher пишет
Вот как просто было написать a href=javascript:MyFunc() и никакого геморроя ... Infocatcher пишет
Об этом надо забыть, пока не расстреляют всех этих разработчиков, которые высыпали такую кучу ... на простых скриптописателей. |
Inko7 > 20-01-2010 09:55:39 |
Maxone |
Infocatcher > 20-01-2010 17:24:12 |
Minor пишет
Или там нельзя свои свойства добавлять... Minor пишет
Я же сразу предложил попробовать засунуть весь код вовнутрь конструкции Вот, вроде, работает: Выделить код Код:var _nodes = []; var _realNodes = []; var _handlers = []; function removeListener(node) { var indx = _realNodes.indexOf(node); if(indx != -1) { var evt = _handlers[indx]; _nodes[indx].removeEventListener(evt.type, evt.func, evt.useCapture); _nodes.splice(indx, 1); _realNodes.splice(indx, 1); _handlers.splice(indx, 1); } } function addSingleListener(node, type, func, useCapture) { node.addEventListener(type, func, useCapture); var realNode = node.wrappedJSObject || node; removeListener(realNode); _nodes.push(node); _realNodes.push(realNode); _handlers.push({ type: type, func: func, useCapture: useCapture }); } addSingleListener(document.body, "click", function(e) { alert(e.target); }, true); addSingleListener(document.body, "click", function(e) { alert(e.target); }, true); addSingleListener(document.body, "click", function(e) { alert(e.target); }, true); |
Minor > 21-01-2010 14:04:35 |
Infocatcher Infocatcher пишет
Спасибо! Потестирую. А есть какая-нибудь функция, чтобы можно было загрузить произвольную страничку в переменную? Чего-то никак найти не могу. Что-нибудь типа: |
Infocatcher > 22-01-2010 01:26:00 |
Minor пишет
Если произвольную, то только GM_xmlhttpRequest. |
Minor > 22-01-2010 09:32:09 |
Infocatcher Infocatcher пишет
Спасибо! Почему-то удаётся получить responseText, но responseXML равен null. Там по ссылке написано:
А как это сделать? |
Infocatcher > 22-01-2010 19:54:49 |
Minor Выделить код Код:var req = new XMLHttpRequest(); req.open("GET", "http://...", false); req.overrideMimeType("text/xml"); ... А для GM_xmlhttpRequest есть пример: Выделить код Код:// Inject responseXML into existing Object if not present if (!response.responseXML) response.responseXML = new DOMParser().parseFromString(response.responseText, "text/xml"); |
Artyon > 27-01-2010 18:25:58 |
Кто-нибудь может написать или сказать, где попросить, чтоб написали скрпит для history.qip.ru? Хочется иметь возможность просматривать большее количество сообщений на странице, сохранять всю историю себе в txt. |
Minor > 29-01-2010 12:19:07 |
Infocatcher А можно сделать так, чтобы сначала загружался скрипт, а потом грузилась страничка? |
Infocatcher > 30-01-2010 13:02:21 |
Minor пишет
Greasemonkey срабатывает по событию DOMContentLoaded – то есть когда DOM-дерево полностью построено (но какие-нибудь картинки еще грузятся). |
mr.Finch > 31-01-2010 22:04:14 |
Здравствуйте. А не поможете решить вопрос http://forum.mozilla-russia.org/viewtop … 11#p409111 Я просто сам в скриптах ни грамма не понимаю. |
Minor > 04-02-2010 20:15:50 |
Infocatcher Infocatcher пишет
А существует простой способ переделать скрипт в расширение, которое запускает скрипт по onProgressChange? |
Infocatcher > 04-02-2010 23:56:32 |
Minor пишет
http://forum.mozilla-russia.org/viewtopic.php?id=39496 |
Minor > 06-02-2010 18:28:52 |
Infocatcher Ещё вопрос, можно руссифицировать скрипт без UTF-8? |
Infocatcher > 06-02-2010 18:58:42 |
Minor пишет
Там другой механизм. Перед загрузкой любого объекта сначала опрашиваются все «слушатели» и если ни один из них не отменил запрос, то начинается загрузка. То есть, по идее, на этом этапе нельзя сказать, будет ли это что-то загружено. Например, в BetterCache вот так: Выделить код Код:var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService); observerService.addObserver(httpObserver, "http-on-examine-response", false); и Выделить код Код:var httpObserver = { ... observe: function(subject, topic, data) { if (topic == "http-on-examine-response") { ... } } }; Только при этом еще нет объекта window страницы, чтобы выполнить код в его контексте. P.S. А в Adblock Plus, насколько я понимаю, Выделить код Код:// // nsIContentPolicy interface implementation // shouldLoad: function(contentType, contentLocation, requestOrigin, node, mimeTypeGuess, extra) { ... 06-02-2010 19:00:53
Можно. После \u – hex-код символа. |
Minor > 12-02-2010 00:29:06 |
Infocatcher пишет
Всё равно лучше чем ничего! Спасибо! |
Minor > 19-02-2010 13:08:06 |
Скажите, если я напишу какой-нибудь гениальный скрипт, то есть какое-нибудь место, где им можно поделиться (кроме этой странички)? |
Sid > 19-02-2010 13:20:20 |
Minor |
Daglus > 19-02-2010 13:33:44 |
Никому не попадался скрипт который по клику отмечал чекобксы на странице? Есть просто сайты где постоянно приходится работать и какой-то Петя не додумался "отметить все" прикрутить. |
Sid > 19-02-2010 13:59:42 |
Daglus pi.v.vitaly |
Daglus > 04-03-2010 14:01:29 |
Sid спасибо Select понравился, жалко нельзя в нем через сочетания клавиш выделять все |
MadMan > 09-04-2010 16:14:18 |
Обновился Greasemonkey 0.8.20100408.6 |
julios > 20-05-2010 14:22:40 |
Здравствуйте! Я пишу скрипт, который на всех (почти) страницах выводит пользовательскую форму Вопрос: Как разместить эту форму аналогично тому, как сделано в результатах поиска картинок Google: Буду благодарен за мысли и примеры :-) |
julios > 20-05-2010 18:58:20 |
Что-то не придумаю никак, как это реализовать через Greasemonkey. |
Tei1or > 28-05-2010 00:53:38 |
эм. а вот у меня при включенном Greasemonkey, открывается сего домашняя страница при любой операции о очень много раз. как это отключить? |
Daglus > 03-06-2010 14:34:11 |
можно ли как-то через Greasemonkey скриптом заставить подобные сайты как http://www.cjclub.ru/ вписываться без горизонтального скрола на мониторах с разрешением 1024-768? Если да то от примера не отказался бы. Вариант поставить еще одно дополнение не устраивает |
julios > 05-06-2010 20:29:00 |
Daglus пишет
Я думаю, можно. 05-06-2010 20:39:20 Выделить код Код:var logo = document.createElement("div"); logo.innerHTML = '<div>' + '<код: стили, html, скрипты>' + ... '</div>'; document.body.insertBefore(logo, document.body.firstChild); Как видно, функции Javascript я тоже записал внутри этой конструции. |
Infocatcher > 05-06-2010 21:17:28 |
julios пишет
Видимо, не так там с уникальностью названий глобальных переменных. julios пишет
Можно, связывайте. Или нужно оставить расположение скриптов как есть, но отказаться от глобальных переменных: Выделить код Код:(function() { var x = "test"; alert(x); })(); alert(x); // скажет, что нет такой переменной |
julios > 06-06-2010 20:20:49 |
вообще, стараюсь избегать использования глобальных переменных, но у меня и надобности такой не было. Выделить код Код:// ==UserScript== // @name FillForm_01 ... // ==/UserScript== document.getElementById('main_body').align="left"; // К примеру, выполняем некоторые действия с элементами страницы document.getElementById('main_body').style.width="50%"; // привет, Daglus function $1 () {} // Определяем функцию $1 () // Затем уже упомянутая конструкция: var logo = document.createElement("div"); logo.innerHTML = '<div>' + '<script type="text/javascript">' + 'function $2 () {}' + '</script>' + '$2 ()' + // Эта ф-ция будет вызвана '$1 ()' + // Эта ф-ция НЕ будет вызвана '</div>'; document.body.insertBefore(logo, document.body.firstChild); Как тут применить addEventListener? |
Infocatcher > 06-06-2010 20:39:04 |
Опечатка? Функции $1 и $2 объявлены в разных местах. А Greasemonkey принудительно заворачивает весь код в функцию: Так что приведет к ошибке. |
julios > 06-06-2010 20:55:33 |
Нет, опечатки нет. Таких конструкций: у меня нет. Про глобальные переменные, извините, ничего не понял. |
Infocatcher > 06-06-2010 23:01:21 |
julios пишет
Выделить код Код:function foo() {} alert(foo); var s = document.createElement("script"); s.type = "text/javascript"; s.appendChild(document.createTextNode("alert('Script'); alert(foo);")); document.body.appendChild(s); julios пишет
$1 () – вызов глобальной переменной с именем "$1", что эквивалентно вызову window.$1();. и |
Fantomass > 25-06-2010 12:05:32 |
Подскажите скрипт который на определённой странице жмёт кнопку через заданный промежуток времени... скрытый текст TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:f ATTR=NAME:next&&VALUE:GOU WAIT SECONDS=15 Но лучше бы это делал отдельный скрипт,который к тому же и не заметен в работе.. |
wolfxr > 25-06-2010 14:05:50 |
Ребята есть ли скрипт который в одноклассниках автоматически ставит пятерки просматриваемой фотке, а то один человек меня уже достал |
julios > 07-07-2010 19:35:29 |
Infocatcher пишет
Вот в этой строчке: смысл alert(foo); мне не ясен. |
Infocatcher > 07-07-2010 22:31:32 |
julios пишет
Иногда смысл – в отсутствии чего-либо. Если некая функция foo должна вызываться скриптом со страницы, то она должна быть объявлена там же. Выделить код Код:function foo() { return 0; } alert(foo); var s = document.createElement("script"); s.type = "text/javascript"; s.appendChild(document.createTextNode("alert('Script'); alert(typeof foo + '\\n' + foo2); function foo2() { return 1; }")); document.body.appendChild(s); |
Pak_Uliya > 01-08-2010 22:31:36 |
Извините я новичок в общении с этим приложением и не очень хорошо разбираюсь в компьютерах, не могли бы вы мне объяснить почему у меня при нажатии на кнопку скачать (вконтакте) аудиофайл воспроизводится в новой вкладке, а не скачивается как было раньше? |
Daglus > 03-08-2010 20:40:23 |
Всем добрый день, кто больше понимает помогите елси возможно сваять скрипт который бы с этого сайта скрытый текст http://www.ex.ua/view/1641092 По клику на играть открывал ссылку не в проигрывателе сайта в плеере в системе (VLC или Smplayer). Каждый раз копировать ссылку и вставлять в плеер нудно |
GeorgM > 30-08-2010 17:13:06 |
У меня greasemonkey конфликтует с picasaweb - там перестают работать все кнопки . Это можно поправить ? |
iDev.Pi > 31-08-2010 01:45:53 |
GeorgM |
GeorgM > 01-09-2010 16:14:18 |
На момент возникновения проблемы был включен только скрипт savefrom для скачивания с депозита . |
bilyavcev > 01-09-2010 23:45:14 |
Аналогичная проблема, GeorgM, не могу разобраться( |
hop > 17-10-2010 23:46:13 |
Подскажите, пожалуйста, как сделать, чтобы этот скрипт http://forum.mozilla-russia.org/viewtopic.php?id=25555 срабатывал в заданном диапазоне адресов без нажатия F2, сразу. |
Infocatcher > 18-10-2010 02:14:54 |
hop на и в самом конце добавить |
hop > 18-10-2010 03:06:35 |
Infocatcher пишет
Спасибо! |
suhov2 > 09-11-2010 22:05:16 |
Добрый день господа! |
`p r o x y > 17-11-2010 18:49:30 |
Доброго времени суток. Т.е. как в GM можно отследить событие до/после выполнения браузером JS скрипта. |
mmihato > 20-11-2010 20:15:41 |
ето только у меня GM не удаляет скрипты на ночных сборках GM? |
MySh > 20-11-2010 21:54:15 |
`p r o x y |
Tom_Creo > 06-01-2011 16:24:32 |
Друзья, подскажите новичку, почему не работает onclick? document.body.innerHTML+='<button onclick="qqq()">lololololololoolol</button>'; и ничего не происходит... |
MySh > 07-01-2011 01:01:09 |
Tom_Creo
|
Tom_Creo > 07-01-2011 01:32:21 |
MySh пишет
спасибо button=document.getElementById("btn"); function run() (с) Vectorspace |
tranzer > 07-01-2011 02:49:16 |
Проблема с GreaseFire - стоит версия 1.0.4 совместимо с Greasemonkey. Почему-то иногда выдает, что не совместимо с 3.6.13 - решается проблема обновлением браузера и в результате перезапуска всё в порядке. Такое бывает время от времени. Как исправить? |
Tom_Creo > 09-01-2011 00:09:06 |
Друзья, подскажите, пожалуйста, почему не работает setInterval и setTimer в гризманкей? document.body.innerHTML+='<input id="btn" value="Submit" type="button" />' var ttt=setInterval("pool()",1000); function pool(){ |
Infocatcher > 09-01-2011 00:30:09 |
Консоль ошибок пишет
setInterval приводит к вызову eval("pool()"), а функции, объявленные в Greasemonkey, не попадают в глобальную область видимости. http://wiki.greasespot.net/Main_Page и в особенности http://wiki.greasespot.net/XPCNativeWrappers |
Tom_Creo > 15-01-2011 10:37:55 |
Друзья, подскажите функцию-аналог симуляции клика для мозиллы: Выделить код Код:<span onclick="alert('')" id='filo'>работает в IE</span> <script> document.getElementById('filo').click() </script> |
Infocatcher > 15-01-2011 14:32:37 |
Tom_Creo пишет
|
julios > 27-01-2011 14:23:56 |
Товарищи! Добавлено: |
Skarm > 31-01-2011 00:02:50 |
Да как-то неожиданно обновили для пользователей... У меня остались некоторые скрипты выкл., как их теперь включить то? В поле одна пустота - установленных скриптов не видно. Кто-то разобрался, как бороться? Объясните популярно |
RusDS > 31-01-2011 19:23:28 |
Skarm пишет
В менеджере дополнений ничего не появилось? скрытый текст Попробуйте перезагрузить Вашу тему или сменить тему на дефолтную. |
Skarm > 05-02-2011 12:29:29 |
RusDS |
Najlus > 05-02-2011 15:41:22 |
Skarm пишет
Ставь бету AiOS - никакого конфликта с ней нет. |
julios > 08-02-2011 11:38:55 |
Извините, ничего не понял ( АиОС — даже не знаю, что такое и с чем едят, поэтому у меня его нет. Всё-таки не ясно, как подключить конкретный скрипт к конкретной странице? скрытый текст |
koshius > 13-02-2011 14:00:15 |
julios пишет
julios пишет
Похоже, что именно так. На самом деле, написать "// @include " перед URL в тексте скрипта не намного сложнее чем вставить этот URL в специально отведённое для этого поле. Зато теперь метаинформация обновляется сразу после изменения (и сохранения) скрипта, что очень удобно для разработчиков. |
julios > 15-02-2011 18:20:11 |
Я всё-таки немного не допонимаю )) Тем более не ясно, почему скрипт всё-таки продолжают работать на тех веб-страницах, которые были ранее «добавлены» через «диалог»? Попытался разобраться, что пишут ребята в Гугл-группе. Аргументы, какие-то странные там. |
koshius > 17-02-2011 16:22:57 |
julios пишет
Если речь идёт о том, что надо портировать старые скрипты, то можно облегчить эту задачу выдрав нужные include из файла gm_scripts\config.xml, который лежит в текущем firefox профиле. |
Radow > 09-03-2011 02:17:31 |
Люди, помогите, пожалуйста разобраться - у меня накрылись старые профили и теперь я не могу восстановить самые элементарные и привычные черты поведения своего браузера. |
shumomer > 09-03-2011 02:51:25 |
Что-то ты не то нашел Это обработчик для уже существующих линков. По двойному клику - не знаю, есть такие что просто преобразуют все в линки, что-то из этой серии попробуй: http://userscripts.org/scripts/show/1352 |
iDev.Pi > 09-03-2011 04:56:44 |
Radow |
Radow > 09-03-2011 11:18:28 |
shumomer, там именно открывался текст, который был несформатированной ссылкой. С короткими (базовыми) ссылками такой подход для меня приятнее линкифицирования (как делает Linkify Plus). |
iDev.Pi > 09-03-2011 15:26:40 |
Radow пишет
я раньше тоже так думал, а потом оказалось, что скрипты в среднем глючней чем аналогичные им по функциям дополнения. 09-03-2011 15:31:25 Radow пишет
как объяснял мне Infocatcher - такой подход ещё и не оказывает задержки на загрузку страницы. |
Radow > 09-03-2011 18:49:13 |
>скрипты в среднем глючней чем аналогичные им по функциям дополнения |
Mrakobes666 > 10-03-2011 12:53:55 |
Najlus пишет
долго копался почему не открывается окно настроек, переустановил на бету и заработало http://firefox.exxile.net/forum/viewtop … =1&t=16106 |
VitaR > 20-03-2011 20:17:55 |
Вопросы, скорее всего, глупые, но в первом подходе ничего не накопал: 1. Можно ли взять кусок простой "линейной" (типа body, h1, h2, p, p, table, table, h2, p, p... /body) страницы и как-то либо вообще вынести этот "кусок" в div либо как-то иначе ограничить его какими-то "метками" (как-то "нарисовать" вокруг именно этого куска тот же div?) для дальнейшей обработки? 2. Можно ли переместить любое содержимое ячейки одной таблицы в ячейку другой? Т.е. вместо сделать Если "да", то как, в самых общих чертах? |
Skarm > 22-03-2011 18:02:00 |
Кто-то использует скрипт Insta-click (Открыть вкладку правой мыши) на 4.0 начало вылезать контекстное меню, которого на 3.6 не было? |
VitaR > 23-03-2011 03:41:50 |
Skarm пишет
Попробуй одноимённый аддон https://addons.mozilla.org/en-us/firefox/addon/instaclick/ или Right Links |
hydrolizer > 23-03-2011 05:53:38 |
VitaR пишет
А в чем именно проблема? В подобных задачах общий подход один - разбор DOM-структуры документа, и выполнение необходимых преобразований. И то, и другое - вполне решаемые задачи. |
Skarm > 23-03-2011 12:09:48 |
VitaR |
ksbe > 23-03-2011 12:28:48 |
Как написать скрипт который бы нажымал ссылку два раз на определенной странице...???? |
VitaR > 23-03-2011 17:39:28 |
Skarm, дело твоё. Скрипты намного гибче, всё можешь сделать сам, а аддоны пишет кто-то. Но нужны знания. hydrolizer, главная проблема в том, что с яваскриптом я "на Вы" ибо только от случая к случаю в них заглядываю. Т.е. поскольку не дурак то сам разобраться могу, но мешает learning curve вкупе с отсутствием времени. Какой-нить чужой скрипт подошёл бы для jumpstart-а, но пока не смог найти подходящий Настолько "общий подход" я и сам знаю но чуть глубже уже непонятки. Например для "необходимых преобразований" вспоминается только документ.врайт и иже с ним, но что-то подсказывает, что это малёхо не то. Изначально была мысль переделать десигн Руборда и подобных форумов под нетбучный экран, убрав несколько верхних таблиц в блок, который был бы сжат в узкую полоску вверху страницы. В общих чертах я представляю, что нужно в одном месте вставить <div>, в другом, на несколько таблиц ниже, вставить </div>, и потом извращаться с ним как душе угодно -- прятать, перемещать и т.д. Но вот как именно вставить тег в конкр. место я что-то не могу врубиться |
Jetro > 30-03-2011 16:16:44 |
Никто не в курсе как можно проиграть музыкальный файл через скрипт Greasemonkey? Кратко обрисую задачу - скрипт проверяет страницу на присутствие определенных данных, и если они найдены то хочется чтобы проигрывался звук. Скрипт проверки написан, осталось только действие после нахождение данных. |
Крошка Ру > 30-03-2011 17:26:57 |
Jetro а если посмотреть как это реализовано в расширениях, например DownThemAll! |
Finik > 03-04-2011 15:42:52 |
Есть скрипты добавляющие что-либо на страницу about:blank? Найти не могу |
Raf-9600 > 05-05-2011 00:02:10 |
А Greasemonkey умеет сам обновлять установленные скрипты (как Fx обновляет аддоны), или для этого обязательно устанавливать Script Updater http://userscripts.org/scripts/show/8877 ? |
Лия > 05-05-2011 08:24:05 |
Если в скрипте прописано обновление, то обновит, нет - нет. |
Skorii > 09-05-2011 12:29:30 |
Примерно год назад Гугл ввел с моей точки зрения чрезвычайно неудобный просмотр картинок. Подскажите пожалуйста что можно придумать. Вариант нажать внизу "Переключитесь на упрощенную версию" не устраивает. Вот нашел обновленный скрипт, но тоже почему то не срабатывает |
Крошка Ру > 09-05-2011 12:47:58 |
Skorii у меня вот этот работает > Google Image Basic , но не в Greasemonkey а в Scriptish |
Skorii > 09-05-2011 13:19:53 |
Крошка Ру, спасибо! Сейчас попробую. |
Jetro > 10-05-2011 11:05:23 |
Крошка Ру пишет
Не было времени заняться этим... |
CoolCmd > 10-05-2011 23:56:46 |
Jetro Скорее всего нужно было закинуть код скрипта на html страницу и там уже его выполнять. Я так делаю на ютубе что бы получить доступ к flash плееру. |
bodrox > 11-05-2011 23:41:56 |
Подскажите, есть ли скрипт, форматирующий номера сотовых операторов в формате 89********* в удобный вид, например, +7(9**)***-**-** ? |
bodrox > 12-05-2011 00:37:15 |
Однако, сварганил. Имеет смысл выкладывать его на usercripts или здесь ввиду его (скрипта) топорности и узконаправленности? |
iDev.Pi > 12-05-2011 03:16:07 |
bodrox |
bodrox > 12-05-2011 21:27:28 |
не, уж лучше только тут. с английским плохо. да и выкладывать стыдновато такой костыль . скрытый текст Выделить код Код:// ==UserScript== // @name phonenumber-линкификатор // @version 1.0 // @namespace http://userscripts.org/scripts/show/88068 // @include http://* // @exclude http://acid3.acidtests.org/* // ==/UserScript== document.addEventListener('DOMContentLoaded',function(){ // Регэксп для телефонов - первые два общие, последний для слитных номеров в РФ // надеюсь никто не смотрит странички про сложение 11 значных чисел и текстовые url с +№ в них? :) const numberRegex = /(\+?\d{1,3}[\s\-]*\(\s*\d{2,4}\s*\)([\s\-]*\d{2,4}){2,3})|(\+?\d{0,3}[\s\(]+\d{2,3}[\s\)]+((\d{2,3}\-\d{2}\-\d{2})|(\d{2,3}\-\d{4})))|((\+7|^8)[\s\-\(]{0,2}\d{3}[\)\s\-]{0,2}\d{2,3}\-?\d{2}-?\d{2})/g; function phonenumberformat(t) { // Замена номера 89********* в удобный вид +7(9**)***-**-** var fixedNum; fixedNum = '+7(' + String(t).charAt(1) + String(t).charAt(2) + String(t).charAt(3) + ')' + String(t).charAt(4) + String(t).charAt(5) + String(t).charAt(6) + '-' + String(t).charAt(7) + String(t).charAt(8) + '-' + String(t).charAt(9) + String(t).charAt(10); return fixedNum; } // теги, в содержимом которых может быть номер телефона var allowedParents = [ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big', 'blockquote', 'body', 'caption', 'center', 'cite', 'dd', 'del', 'div', 'dfn', 'dt', 'em', 'fieldset', 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'iframe', 'ins', 'kdb', 'li', 'nobr', 'object', 'pre', 'p', 'q', 'samp', 'small', 'span', 'strike', 's', 'strong', 'sub', 'sup', 'td', 'th', 'tt', 'u', 'var' ]; // иконка phonenumber var phonenumberImage = 'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN2obAjRmU0R06BeDvDn2AEAAAAAAAAAALpnAP8AAAAAumcA/wAAAAAAAAAAumcA/7pnAP8AAAAAAAAAAM+MPwq1eTJOxoY0PM+MOhO8oG0EAAAAAAAAAAC6ZwD/AAAAALpnAP8AAAAAumcA/wAAAAAAAAAAAAAAANupbgXKhDOlu3sw/7F0Le/Tl1Bs0JBICAAAAAAAAAAAumcA/7pnAP+6ZwD/AAAAALpnAP8AAAAAAAAAAAAAAADYoWFjtXYt/dGRRv+7ey//sXQs+9GPQmLOijwBAAAAALpnAP8AAAAAumcA/wAAAAC6ZwD/AAAAAAAAAAAAAAAAzoo6xLJ0Lf/KhDP+0ZFH/ciDMv+aZSfi0I5CEgAAAAC6ZwD/AAAAALpnAP8AAAAAAAAAALpnAP+6ZwD/AAAAAMqEM9zAfTD/r3Is/8J/Mf/KhDP/uHguw9qnbA369e0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNiDfCzYc2/8WBMf+rcCv6iFkindKTSRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0pNKS8qEM+3QjkH/zYc24rN1LTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRkUZXyoQz9dCOQf/RkUfH3KRrIJh1AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANadWmzNhzb9zoo6/9COQsjYnVwpwIBQAwAAAAAAAAAArXErFKdtKmLCfzFCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1JlUf86KOv/Oijv/zYo60s+PQz8AAAAAAAAAAMJ/MZqzdS35uHgu7c2GNKbjvI4bAAAAAAAAAAAAAAAAAAAAAN+zfwHQj0KFzos7/s2KO//LhDLl0ZBEUtSZVBPKhDPbzoo8/7h4Lv+wcyz/zoo8twAAAAAAAAAAAAAAAAAAAAAAAAAA26lvAdGPRIHOizv60pJI/86KOvS6ei/OnWYn9dCOQv/QjkL9yoQz/rV2Lf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05ZPZM6JOenSlEz/05VO/8J/Mf+obir+zoo6/dGRRv+4eC7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIgzI30I5CqM6KOv/Tlk//z4w//7h4Lv+obir6xYExdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCPRAq3eC5EtXYti7h4LqywcyyRpWwpPgAAAAAAAAAAw1kAAINXAAADFwAAAVcAAAFZAAAA/wAAA/8AAAf/AACB/wAAwMcAAODBAADgAQAA8AEAAPwBAAD+AQAA/wMAAA=='; var xpath = '//text()[(parent::' + allowedParents.join(' or parent::') + ')]'; var candidates = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var cnd = null, i = 0; (cnd = candidates.snapshotItem(i)); i++) { if (numberRegex.test(cnd.nodeValue)) { var span = document.createElement('span'); var source = cnd.nodeValue; cnd.parentNode.replaceChild(span, cnd); numberRegex.lastIndex = 0; for (var match = null, lastLastIndex = 0; (match = numberRegex.exec(source)); ) { span.appendChild(document.createTextNode(source.substring(lastLastIndex, match.index))); var img = document.createElement('img'); img.setAttribute('alt','phonenumber'); img.setAttribute('title', 'phonenumber'); img.setAttribute('style', 'vertical-align:top; margin-right: 4px;'); img.setAttribute('src', phonenumberImage); var a = document.createElement('a'); // a.setAttribute('style', 'vertical-align:middle;'); a.appendChild(document.createTextNode(phonenumberformat(match[0]))); span.appendChild(img); span.appendChild(a); lastLastIndex = numberRegex.lastIndex; } span.appendChild(document.createTextNode(source.substring(lastLastIndex))); span.normalize(); } } }, false); |
mserv > 24-05-2011 11:35:13 |
При попытке изменить скрипт, в блокноте открывается пустая страница. Как сделать, что бы открывался скрипт? |
Raf-9600 > 25-05-2011 01:49:27 |
Skarm пишет
Скрипт всегда запускается только после загрузки страницы, а адон ведет себя так, как написал его автор, т.е. вполне может замедлять загрузку страниц. P.S. |
Крошка Ру > 26-05-2011 02:27:53 |
Raf-9600 пишет
|
Raf-9600 > 26-05-2011 12:24:49 |
Крошка Ру |
Sergik1 > 18-06-2011 19:40:00 |
Установил сегодня FF 5.0 и GM не подгружает скрипты. Меню аддона доступно, можно покавыряться в настройках, но сами скрипты не работают. Версия GM 0.9.5. Поделитесь рабочей версией. :::: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0 |
Крошка Ру > 19-06-2011 02:24:02 |
Sergik1 ,всё что могу предложить - попробуйте вместо Greasemonkey Scriptish - менеджер скриптов для Firefox (пост №30 - прямая ссылка на исправленную версию) |
Sergik1 > 19-06-2011 06:28:34 |
Спасибо за отзыв, но с Scriptish та же ситуация - скрипты не срабатывают, хотя визуально расширение работает, меню открывается, можно включить/выключить скрипт. |
Крошка Ру > 19-06-2011 07:30:22 |
Sergik1 все скрипты? а у меня в 7.0a1 работают .... или просто скрипты другие ......может только в 5.0 так? |
Sergik1 > 19-06-2011 09:17:32 |
Да, абсолютно все Попробую сейчас на чистом профиле, но всё равно сомнительно. Ведь 2 отдельных расширения для скриптов такое выдают... позже отпишусь. П.С. Да, так и есть, на новом профиле тоже скрипты не срабатывают. Похоже скрипты не ассоциируются с адресом страницы для которой они написаны, т.е. не знают, что им нужно в данный момент отработать. Вот скрины, показан код скрипта, он для страницы Гугла и собственно скрин меню scriptish при открытой странице Гугла. Скрип т не подгружается. |
Крошка Ру > 19-06-2011 09:33:26 |
Sergik1 , у меня из шести установленных: |
Sergik1 > 19-06-2011 13:11:02 |
По логу ошибок в консоли на jabber конференции поддержки сказали, что в ФФ 5.0 изменили js движок и теперь некоторые скрипты не будут работать, их нужно допиливать. Дело не в расширениях. |
Skorii > 20-07-2011 17:39:15 |
Подскажите пожалуйста такую штуку. П.С. Обновление страницы не подходит. |
CoolCmd > 20-07-2011 17:43:07 |
Skorii |
Skorii > 20-07-2011 18:28:08 |
CoolCmd скрытый текст http://s2.ipicture.ru/uploads/20110720/Ru42LLMd.jpg |
ПротопопулуS > 07-09-2011 14:57:39 |
Уважаемые езнатоки JavaScript, помогите решить задачку... Код этот работает, но я что-то никак не соображу как можно отловить в Greasemonkey нужный мне див и сделать по нему click или послать ему onMouseOver. У каждого дива этого класса есть атрибут "_enab="N" ", где N число от 0 до 93. Поскольку не силен в JavaScript, то всю репу уже расчесал себе, в попытках нагуглить хоть что-то. |
Lynn > 07-09-2011 15:22:58 |
document.querySelector("[_enab=8]") https://developer.mozilla.org/En/DOM/Document.querySelector 07-09-2011 15:23:55 |
ПротопопулуS > 08-09-2011 15:41:07 |
Что-то я ничего не понимаю... Весь уже измучился Вот скрипт: Выделить код Код:window.checkdiv = function () { ADS = document.getElementById('test-div-id'); if (ADS != null) { alert('Find'); } else { alert('None'); } } checkdiv(); Вообще не выдает алерта... ЧЯДНТ? |
Infocatcher > 08-09-2011 17:11:24 |
http://wiki.greasespot.net/Avoid_Common … easemonkey И лучше var ADS = ... |
ПротопопулуS > 08-09-2011 17:53:17 |
Пробовал так же как Вы советуете - не видит элементов ни в какую. |
iDev.Pi > 29-09-2011 03:45:51 |
тут у нас новый раздел появился, куда планируется перенести обсуждение скриптов. |
iDev.Pi > 02-10-2011 20:33:43 |
iDev.Pi пишет
Спасибо Unghost-у, наконец-то право голосовать есть у всех. |
Tronix > 03-10-2011 12:40:20 |
Я не понял, коллеги, Greasemonkey работает на Seamonkey 2.4.1 или нет ? |
mity47 > 03-10-2011 20:04:03 |
Коллеги,напишите кто ставил скрипт (позволяет просматривать достижения пользователя в игре "Тюряга" ВКОНТАКТЕ) http://userscripts.org/scripts/show/113099 Это случаем не троян,не ворует и отсылает пассы??? |
Inko7 > 13-10-2011 14:42:20 |
Подскажите скрипт для вставки определенного текста в нужные поля ввода на конкретном сайте. скрытый текст Вот этот сайт автоматом вставить текст в три поля для ввода |
Inko7 > 13-10-2011 16:22:05 |
okkamas_knife |
megane > 13-10-2011 16:32:09 |
Inko7 |
Inko7 > 13-10-2011 16:54:04 |
megane |
megane > 13-10-2011 17:05:09 |
Inko7 |
bunda1 > 13-10-2011 18:33:22 |
эсть CB кнопка Auto Login может ее можно как то приспасобить, скрытый текст Выделить код Код:var apps,srcUrl,MItem,mPop; function onLoad(uname,pass) { alert("Please wait a sec.."); form_fill(uname,pass); } function loadPage(evt) { var url=evt.target.value; var name=evt.target.name; var pass=evt.target.pass; gBrowser.selectedTab=gBrowser.addTab(url); function load(){ if (content.document.title.length>0) { onLoad(name,pass); } else { setTimeout(load.bind(this),1000); } }; load(); } function submit_form() { submit_it(gBrowser.contentDocument.getElementsByTagName("BUTTON")); submit_it(gBrowser.contentDocument.getElementsByTagName("INPUT")); } function submit_it(obj) { for(var i=0;i<obj.length;i++) { if(obj[i].type=="submit") { obj[i].click(); break; } if(obj[i].type!="hidden" && (obj[i].type=="button")) { var n=obj[i].name.toLowerCase(); var v=obj[i].value.toLowerCase(); if(n.match("submit") || n.match("login") ||v.match("submit") ||v.match("login")||n.match("sign") ||v.match("sign")) { obj[i].click(); break; } } } } function form_fill(username,passwd) { var obj= gBrowser.contentDocument.getElementsByTagName("INPUT"); for(var i=0;i<obj.length;i++) { if(obj[i].type!="hidden") { if(obj[i].type=="text") { var n=obj[i].name.toLowerCase(); if(n.match("name") || n.match("login")||n.match("mail")) obj[i].value=username; } if(obj[i].type=="password") obj[i].value=passwd; } } submit_form(); } function getIndex(opt,value) { for( var i=0;i<opt.length;i++) { if(opt[i].text==value) return i; } } //------menu items-------- var Img=this.image; apps=new Array; apps.push(['Yahoo','http://www.yahoomail.com','username','pass',Img]); apps.push(['Gmail','http://www.gmail.com','username','pass',Img]); apps.push(['Rediff','http://www.rediffmail.com','username','pass',Img]); apps.push(['separator']); //------/menu items------- MItem=function(value){ var mItem=document.createElement('menuitem'); mItem.setAttribute('label',apps[value] [0]); mItem.value = apps[value] [1]; mItem.name= apps[value] [2]; mItem.pass= apps[value] [3]; mItem.tooltipText = apps[value] [0]; mItem.setAttribute('class','menuitem-iconic bookmark-item'); mItem.setAttribute('image',apps[value] [1]); return mItem; } //this.orient="vertical"; mPop=document.createElement('menupopup'); for (var i=0;i<apps.length;i++){ if (apps[i] =='separator'){ mPop.appendChild(document.createElement('menuseparator')); }else{ mPop.appendChild(MItem(i)); } } this.siteGo=function(evt) { loadPage(evt); } this.appendChild(mPop); this.type = "menu-button"; this.tooltipText=this.label; this.setAttribute("oncommand", "this.siteGo(event);"); this.value="http://yahoomail.com"; this.name="username"; this.pass="pass"; |
Зайчик Ben > 13-10-2011 18:34:40 |
Только у меня greasmonkey на 7 и 9 заставляет браузеры дико жрать процессорные ресурсы, вплоть о 50%? |
Inko7 > 13-10-2011 18:42:27 |
bunda1 |
kostyanet > 22-10-2011 20:30:51 |
Был рабочий, редко используемый старый скрипт с такими строчками: var w = window.wrappedJSObject; // для доступа к скриптам основной страницы Затем достаточно было написать, например var v = g.somevalue; и все работало. Чтобы получить данные основной страницы из фрейма в свою очередь, хватало w.parent; где w, тот же враппер но фрейма, изнутри. Ну вот, не знаю что обновилось, или GM, или сайт для которого он был написан, но халява обломилась. Сначала вообще не мог понять почему все перестало работать, потому что инспекция кодов сайта ничего не показала: все по-старому. Когда разобрался, методом научного самотыка, оказалось надо теперь делать так: var w = window.wrappedJSObject; и для топового окна из фрейма var p = w.parent.wrappedJSObject; Смотрел новости по обновлениям ГМ, искал отголоски в инете: пусто. Вопрос риторический: что это могло быть? |
kostyanet > 23-10-2011 20:39:39 |
Оказывается надо делать канонически. Сначала получить реф на окно фрейма, например по имени: var iFrame = document.getElementsByName(iFrameName)[0].contentWindow; а потом уже заварпить: var wFrame = iFrame.wrappedJSObject; Теоретически первое можно сделать через window.frames[iFrameName] - не проверял. |
Kamui > 26-12-2011 19:34:51 |
Кто шарит в скриптах, есть скрипт очень хороший Mouseover Popup Image Viewer, который прекрасно работает с картинками с fastpic.ru но только если они в jpg, а если там png то не хочет показывать, как можно поправить скрипт чтобы работал с png? Как оказалось дело не в png формате, а в том, что скрипт не работает на рутрэкере, даже если скриншоты в jpg:/ что делать? |
vurdalak > 18-01-2012 14:09:28 |
Как заблокировать выполнение этого скрипта Выделить код Код:var a = new Date; if (18 == a.getDate() && 0 == a.getMonth() && 2012 == a.getFullYear()) { window.location = "http://sopastrike.com/strike"; } |
Александр Колесников > 18-01-2012 15:36:00 |
Kamui пишет
создал тему по нему, для оформления темы нужна помощь знающих JS - http://forum.mozilla-russia.org/viewtopic.php?id=53339 |
Inko7 > 22-01-2012 14:41:30 |
Есть такой сайт MTS - Ребенок под присмотром. При авторизации на нем, FF не предлагает сохранить для него пароль. Поэтому решил проблему скриптом: Выделить код Код:// ==UserScript== // @name MTS Poisk - Autologin // @include http://www.poisk.mts.com.ua/MTS_WEB/* document.getElementById("loginUsername").value = "мойлогин"; document.getElementById("loginPassword").value = "мойпароль"; Осталась только одна проблемка: как кнопку "Вход" автоматом нажать? и так: не получается... |
Void Dragon > 22-01-2012 14:43:42 |
Inko7 22-01-2012 14:45:58 Выделить код Код:// ==UserScript== // @name Autologin // @namespace http://www.poisk.mts.com.ua // @include http://www.poisk.mts.com.ua/MTS_WEB/* // @description Autologin on http://www.poisk.mts.com.ua document.getElementById("loginUsername").value = "мойлогин"; document.getElementById("loginPassword").value = "мойпароль"; document.getElementById('DefButton').click(); |
Inko7 > 22-01-2012 14:50:55 |
Void Dragon |
Void Dragon > 22-01-2012 15:22:34 |
Greasemonkey скрипты работают только, если на странице включены скрипты или всегда? |
Infocatcher > 22-01-2012 17:36:26 |
Void Dragon |
bodrox > 22-01-2012 21:15:48 |
Комрады, есть ли скрипты, меняющие на windows-1251? |
Void Dragon > 22-01-2012 22:46:11 |
bodrox Выделить код Код:// ==UserScript== // @name my.site.windows-1251 // @namespace http://www.my.site // @include http://www.my.site* // @description my.site = windows-1251 document.getElementsByTagName("META").getElementsByAttribute("content", "text/html; charset=iso-8859-1").charset = "text/html; charset=windows-1251"; Попробуй. Но getElementsByAttribute(charset, value) не стандартная, не знаю как Greasemonkey поддерживает её. Добавлено: Ошибся, поправил. 22-01-2012 22:58:27 |
bodrox > 23-01-2012 08:47:22 |
Void Dragon пишет
Спасибо. Не хочет только. Извините, забыл сказать, что это для Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. хотел. Письма в кириллице приходят, каждый раз вручную надо править. Смотрю в исходном коде, всё та же кодировка указана. |
Inko7 > 23-01-2012 10:51:42 |
bodrox |
bodrox > 23-01-2012 11:14:14 |
Inko7 пишет
Спасибо, а я искал «codepage» . |
Benos > 29-01-2012 23:22:44 |
День добрый! Выделить код Код:<div class="center-buttons"> <a href="#" id="list_num" onclick="return list();" class="orange-btn-wide"> <img src="/images/img/img.png" alt="" height="60" width="60" /><span>Список</span></a> </div> Пытаюсь через GM автоматически на нее кликнуть... Выделить код Код:var ButtomTAG = document.getElementById("list_num").getElementsByTagName("span"); for (var i = 0; i < ButtomTAG.length; i++) { if (ButtomTAG[i].firstChild.textContent == "Список") { ButtomTAG[i].click(); break; } } и ни фига Выделить код Код:<div id="Part_1"> <div data-tutorial='2'> <a class="button grey6" href="javascript:rand(0);"><span>Перейти</span><em></em></a> </div> </div> такой скрипт пашет... |
questman > 30-01-2012 09:31:25 |
Попробуй через jQuery var GM_JQ = document.createElement('script'); $('#list_num').click(); } |
Benos > 30-01-2012 21:08:59 |
questman |
questman > 31-01-2012 13:52:11 |
Benos пишет
Если подключен то вторую строчку кода удалите или за комментируйте. setTimeout(function(){ |
Benos > 31-01-2012 19:18:38 |
questman но в тестовом варианте даже элементарный код не пашет... заметил еще одну особенность, если подключать то на сайте перестает работать кнопка |
questman > 31-01-2012 22:21:31 |
var GM_JQ = document.createElement('script'); Свой код здесь Всё пашет без проблем. |
Benos > 31-01-2012 23:07:25 |
вы правы... код пашет... но есть беда... Выделить код Код:var GM_JQ = document.createElement('script'); GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';//Подключаем\отключаем jQuery с офф-сайта или можно локально в base64 GM_JQ.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(GM_JQ); function GM_wait() { if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); } else { $ = unsafeWindow.jQuery; letsJQuery(); } } GM_wait(); function letsJQuery() { $(document).ready(function(){ alert('тест')}); } а в таком ни фига не пашет Выделить код Код:var GM_JQ = document.createElement('script'); GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';//Подключаем\отключаем jQuery с офф-сайта или можно локально в base64 GM_JQ.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(GM_JQ); function GM_wait() { if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); } else { $ = unsafeWindow.jQuery; letsJQuery(); } } GM_wait(); function letsJQuery() { $(document).ready(function(){$('#list_num').click();}); } я так думаю ошибка в строке с кликом. |
questman > 01-02-2012 21:26:19 |
function letsJQuery() { $('#list_num').click(); }); } $('#list_num').click(); } Вот мои примеры $('div.form_value img').click(); $('input#captcha, #captcha_login').focus(); setTimeout(function() { Ну и так далее. |
Benos > 02-02-2012 20:31:25 |
questman Пример если нужно кому Выделить код Код:if(unsafeWindow.jQuery == 'undefined'){ var GM_JQ=document.createElement('script'); GM_JQ.src='http://jquery.com/src/jquery-latest.js'; GM_JQ.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(GM_JQ); function GM_wait(){ if(typeof unsafeWindow.jQuery == 'undefined'){ window.setTimeout(GM_wait,100); }else{ $=unsafeWindow.jQuery; GM_JQ_fun(); } } GM_wait(); }else{ $=unsafeWindow.jQuery; GM_JQ_fun(); } function GM_JQ_fun() { setTimeout(function() { $('#list_num').click(); }, 2000 ); } |
vitalii201 > 03-02-2012 01:40:59 |
можно ли и как отключить обновление выбранного скрипта? |
questman > 03-02-2012 09:57:27 |
Ну вот классно! |
MySh > 03-02-2012 12:50:22 |
vitalii201
Зайти в управление скриптами (в about:addons), выбрать нужный скрипт и отключить автообновление через контекстное меню. |
Void Dragon > 03-02-2012 14:01:18 |
vitalii201 пишет
ПКМ по скрипту - убрать галку авто обновление. Не? |
vitalii201 > 03-02-2012 14:03:37 |
MySh пишет
Void Dragon всё равно при "Проверить обновления" висит "Обновление дополнений". |
MySh > 04-02-2012 02:21:47 |
vitalii201 |
vitalii201 > 04-02-2012 11:04:11 |
MySh пишет
в about:addons при ... скрытый текст есть скрипт последние upd которого не удачны. автору писал и т.д. поставил старый, работающий вариант(от2011.12.18). но теперь при общей проверке дополнений процесс не заканчивается. скрытый текст |
Benos > 05-02-2012 19:31:31 |
День добрый! а то чет их в коде страницы до дури... есть мне не знакомые))) |
Void Dragon > 06-02-2012 00:08:44 |
Benos Но вообще это похоже юникод, т.е. \u003e обозначает какой-то символ. \n - это перенос строки \t и \r тоже что-то подобное. 06-02-2012 00:14:54 Проверит кто? |
Benos > 06-02-2012 20:03:21 |
Void Dragon пишет
то что это юникод эт я понял.. и судя по коду пару сиволом вычислил... но там еще символы есть... и вот что это за сиволы.. фиг знает |
MySh > 08-02-2012 01:48:34 |
vitalii201
Странно, у меня такого нет. А если в самом скрипте попробовать @updateURL поменять? |
vitalii201 > 08-02-2012 02:11:44 |
MySh пишет
что-то – нет. та ладно, я то знаю из-за чего это. обновляется-то всё без проблем. |
Benos > 08-02-2012 20:31:57 |
Всем день добрый! Выделить код Код:jQuery(document).ready(function () {jQuery.sitecore.messaging.processErrors( [{"error":"list.activ"}]);}); |
Benos > 11-02-2012 19:21:59 |
Benos пишет
вопрос решил... коряво но решил)) Выделить код Код:var MenuTAG = document.getElementById('menu') var MenuBUT = document.createElement('li'); MenuBUT.innerHTML = '<a href="javascript:test();">MyButtom</a>'; MenuTAG.appendChild(MenuBUT); function test(){ location.href="http://www.yandex.ru/"; //alert('TEST'); } Функцию ТЕСТ не вызывает? как быть? в чем не прав? подскажите пжл. |
questman > 11-02-2012 22:22:45 |
Я попробовал у меня всё работает. var MenuTAG = document.getElementById('menu') |
Benos > 12-02-2012 00:41:44 |
questman Выделить код Код:// ==UserScript== // @name MyButtom(TEST) // @description MyButtom(TEST) // @include http://www.ya.ru/* // @version 1.0 // ==/UserScript== var MenuTAG = document.getElementById('head'); var MenuBUT = document.createElement('li'); MenuBUT.innerHTML = '<a href="#" onclick="test()">MyButtom</a>'; MenuTAG.appendChild(MenuBUT); function test(){ alert('TEST'); }; |
Infocatcher > 12-02-2012 05:10:25 |
Benos пишет
И не должно: http://wiki.greasespot.net/XPCNativeWrappers |
Benos > 12-02-2012 10:20:53 |
Infocatcher пишет
а про комментировать можно чуть чуть? |
questman > 12-02-2012 12:32:45 |
Benos пишет
Infocatcher имеет ввиду что вот так будет правильно. var MenuTAG = document.getElementById('menu') 12-02-2012 12:48:01 Benos пишет
var MenuBUT = document.createElement('li'); |
Benos > 12-02-2012 13:40:38 |
понял где не прав... но правда пока не понял почему |
Infocatcher > 12-02-2012 15:13:44 |
Benos пишет
Со стороны страницы функции, объявленные в Greasemonkey, не видны: Выделить код Код:function f1() { alert(0); } window.f2 = function() { alert(1); }; unsafeWindow.f3 = function() { alert(3); }; var a = document.createElement("a"); a.href = "javascript: alert(typeof f1 + ' ' + typeof f2 + ' ' + typeof f3);"; // undefined undefined function a.appendChild(document.createTextNode("<test>")); document.body.appendChild(a); Но использовать unsafeWindow небезопасно – теоретически страница сможет получить доступ к GM_* функциям. |
Altalion > 17-02-2012 12:56:54 |
Portable Firefox 10 + Gracemonkey. При нажатии на кнопку "Установить скрипт" ничего не происходит(( Переустановка расширения не помогает. WTF? |
Inko7 > 17-02-2012 13:57:48 |
Altalion Кстати, может кто знает, почему в последних версиях GM перестал появляться тултип об успешной установке скрипта? Раньше было удобней... |
Altalion > 17-02-2012 16:07:00 |
Inko7 пишет
да, любой скрипт. в таскменеджере висят процессы скриптов, которые тужатся в попытках установиться |
Inko7 > 29-03-2012 14:38:39 |
кто-нибудь может подсказать, как скриптом автоматом нажимать кнопку закрытия банера в рамблер-почте? |
iDev.Pi > 29-03-2012 14:57:57 |
Inko7 |
Inko7 > 29-03-2012 16:06:52 |
iDev.Pi |
iDev.Pi > 29-03-2012 16:41:27 |
Inko7 |
Inko7 > 29-03-2012 16:49:26 |
iDev.Pi |
questman > 29-03-2012 22:04:33 |
Inko7 пишет
Я такие вопросы уже давно решаю так: |
Inko7 > 29-03-2012 22:26:08 |
questman пишет
для меня это темный лес |
questman > 15-04-2012 19:29:43 |
Привет всем! |
Infocatcher > 15-04-2012 19:48:15 |
questman пишет
https://developer.mozilla.org/en/DOM/DO … DOM_events |
questman > 15-04-2012 20:45:59 |
Infocatcher пишет
О спасибо! |
questman > 18-04-2012 22:04:26 |
Ребята кто нибудь знает как при помощи Greasemonkey изменить существующие скрипты на страницах? |
Krechet2013 > 21-05-2012 17:26:54 |
как поменять meta charset странице по средствам только userscript'а или javascripta (можно с библиотеками)? |
questman > 22-05-2012 09:26:08 |
questman пишет
Так как я разобрался с этим то отвечу сам себе.Мало ли может кому пригодится. location.href = "javascript:void(window.переменная = 'значение'"; 22-05-2012 09:28:34 Krechet2013 пишет
Я правда не пробовал. |
CoolCmd > 22-05-2012 12:39:20 |
questman unsafeWindow.переменная = значение; questman пишет
ищи нужный текст в тэгах script и его изменяй. |
questman > 22-05-2012 12:43:07 |
CoolCmd пишет
О! |
Krechet2013 > 24-05-2012 14:08:49 |
questman А тема актуальная не только для меня - ещё тут с пяток парней наберётся кому такой трюк нужен. Есть идея забабахать скрипт перелопачивающий все видимые объекты страницы и менющий кодировки на нужную, но дело это тёмное и мне не по зубам. |
questman > 24-05-2012 19:07:48 |
Krechet2013 пишет
Гризманки выполняет все скрипты в своей песочнице. var script = document.createElement('script'); |
Atos > 01-06-2012 19:31:26 |
Помогите, плиз, в GM слетели все скрипты (тупо не видит их) Такое уже было один раз на другом компе, тогда помогло отключение/включение GM с перезагрузкой браузера Скриптов с настройками очень много, заново качать и настраивать это убиться можно. |
LongLogin > 01-06-2012 19:39:52 |
Atos пишет
скрипты лежат в папке профиля gm_scripts - папку скопировать - GM удалить - поставить заново - скрипты вернуть обратно 01-06-2012 19:41:10 |
Atos > 01-06-2012 20:42:52 |
спасибо, помогло вроде |
banbot > 18-08-2012 17:25:04 |
Тема перенесена из форума «Обсуждение расширений» в форум «Скрипты». |
Minor > 26-08-2012 08:32:33 |
Что случилось с GreaseMonkey? Почему я раньше просто открывал свои скрипты в браузере и они устанавливались, а теперь открываю, и ничего не происходит? Как нормально установить свои скрипты? 26-08-2012 08:37:18 Можно как-то восстановить предыдущую версию GreaseMonkey? |
hydrolizer > 26-08-2012 08:46:48 |
Minor пишет
Кто? Авторы столь любимого расширения? Minor пишет
|
Minor > 26-08-2012 14:25:33 |
Как нормально установить свои скрипты в проклятой новой версии GreaseMonkey? Почему когда я теперь их открываю они не устанавливаются как раньше? |
LongLogin > 26-08-2012 14:43:46 |
Minor пишет
|
Inko7 > 27-08-2012 14:14:06 |
Подскажите мне не понимающему, что такого критического изменилось в версии 1.0, что перестал работать следующий скрипт: |
Inko7 > 27-08-2012 15:25:08 |
okkamas_knife пишет
этим пользуюсь, но и с полупрозрачными кнопочками на страничке тоже было неплохо |
Kamui > 27-08-2012 15:44:03 |
Inko7 пишет
А консоль что пишет? |
Inko7 > 27-08-2012 16:39:25 |
Kamui
|
LongLogin > 27-08-2012 16:50:39 |
у меня работает 27-08-2012 16:52:20 27-08-2012 16:56:01 |
Inko7 > 27-08-2012 18:10:28 |
LongLogin пишет
Это ж тот же самый скрипт, только версией поменьше. Но и с ним у меня та же фигня: |
Kamui > 27-08-2012 19:20:24 |
Inko7 |
Inko7 > 27-08-2012 20:10:18 |
Kamui |
humnmind > 29-08-2012 16:36:17 |
Есть такая проблема с Google Reader. Фиды используемые только мной (сделаны в Yahoo Pipes и Feed43) редко обновляются автоматически, хотя если нажать кнопку Обновить (#viewer-refresh) появятся новые записи. Можно ли сделать скрипт, который при выборе фида в левой панельке (либо мышкой либо сочетаниями клавиш) будет его обновлять, автоматически нажимая кнопку Обновить? А то надоело каждый раз жмякать кнопочку. Может кто помочь? |
Kamui > 29-08-2012 18:18:24 |
humnmind |
humnmind > 29-08-2012 19:25:29 |
Kamui |
CoolCmd > 29-08-2012 21:50:54 |
humnmind т.е. у тебя не появляется вверху желтая надпись "загрузко"? |
humnmind > 29-08-2012 22:43:42 |
CoolCmd Нашел вроде пару решений (линк1, линк2), но они из другой области и что с ними делать не знаю (ось - винда). |
lokiju > 30-08-2012 12:08:38 |
humnmind > 30-08-2012 12:48:51 |
В общем лучше этого ничего не нашел. |
xenus > 09-11-2012 01:01:18 |
Помогите разобраться с написанием скриптов... |
questman > 09-11-2012 09:24:26 |
xenus пишет
По всей видимости x,y,z нужно вытаскивать при помощи метода splice() или substring() |
xenus > 09-11-2012 12:41:07 |
А как подменить действие кнопки на свое и вообще каким методо осуществить поиск кнопки? |
Почемучкин > 15-12-2012 23:57:43 |
Несколько вопросов: 1) Может ли Greasemonkey скрипт влиять на браузер Firefox аналогично расширению? В каких пределах? Менять интерфейс, настройки и т.п.? 2) Можно ли с помощью greasemonkey скрипта менять настройки браузера, например те, что в about:config? 3) Если about:config можно менять, то можно ли это делать не для всего браузера, а только для конкретного таба/вебстранцы/домена? 4) Можно ли вообще в Firefox (с помощью полноценного расширения) менять настройки about:config для конкретного таба, а не глобально? |
Почемучкин > 16-12-2012 15:48:23 |
okkamas_knife пишет
А при помощи чего (чуть подробнее)? |
feas > 16-12-2012 15:51:11 |
Почемучкин пишет
может стоит реализовать приватный режим в вкладке (вместо отдельного профиля) |
pohunohi > 18-12-2012 12:18:48 |
Почемучкин пишет
Есть такие расширения. А чего вы так прицепились к about:config? |
Atos > 16-01-2013 21:41:24 |
При перезагрузке компа слетели все настройки скриптов GM (хотя сами скрипты работают). Есть бэкап папки с Мозилловским профилем , также некоторое время назад экспортировал профиль со всеми скриптами и настройками на другой комп. Но полностью профиль не хочется ниоткуда восстанавливать, другие последние изменения могут убиться... Как бы настройки только восстановить? Где они физически хранятся? |
Farby > 17-01-2013 12:05:10 |
Atos Atos пишет
тут "%APPDATA%\Mozilla\Firefox\Profiles\xxxxxxxx.default\gm_scripts\config.xml", где xxxxxxxx - уникальная последовательность символов, для каждого своя, default - профиль по умолчянию |
Atos > 19-01-2013 08:56:19 |
Посмотрел, в config.xml нужных настроек нет, видимо скрипты GM сохраняют их в своих переменных, когда позволяет на определённых страницах создавать и запоминать наборы данных. Где ещё посмотреть можно? |
Kamui > 19-01-2013 11:15:30 |
Atos |
Atos > 19-01-2013 12:02:44 |
Kamui пишет
Kamui, спасибо, нашёл ) потом посмотрел место физического хранения... кроме файла prefs.js обнаружились ещё файлы prefs-1.js, prefs-2.js, prefs-3.js, prefs-4.js... Непонятно только, почему Мозилла сама не предлагала возможность восстановления, если уж произошёл сбой |
Atos > 19-01-2013 15:50:13 |
Хотя нет, оказывается, не всё встало У одного из скриптов настройки так и не работают, в about:config имена их появились, а значения пустые, хотя в prefs.js и имена и значения заданы. Что за ерунда? |
Kamui > 19-01-2013 15:52:41 |
Atos пишет
Так вносите настройки не в pref.js, а в about:config. |
Atos > 19-01-2013 16:00:09 |
Ну как бы есть разница, скопировать одним куском, или долго и уныло копипастить несколько десятков строчек, следя, чтобы в нужные переменные значения вставлять... |
Kamui > 19-01-2013 18:08:47 |
Atos пишет
А кто его знает, может в Greasemonkey какой-то идентификатор есть, который поменялся. |
Atos > 21-01-2013 04:06:31 |
Картина маслом: пробую забить парочку значений от балды с помощью скрипта, в about:config они появляются, но в pref.js всё ещё стоят абсолютно другие значения! (Закрытие/открытие браузера ничего не меняет!!) И самое интересное, что проблема в конце концов решилась заменой файла pref.js на файл, принесённый с другого компа. Получается, часть значений Мозилла брала из pref.js, часть ещё откуда-то?? но после замены файла опять все значения стала брать из него, как и полагается... Вот что это был за глюк, просто интересно уже... |
CGGB > 24-01-2013 20:24:15 |
Подскажите пожалуйста. Как на скрыть верхнюю часть с картинкой на lostfilm.tv и заодно на newstudiogroup.tv? Заранее спасибо. |
CGGB > 24-01-2013 21:36:10 |
okkamas_knife |
Kamui > 30-01-2013 21:44:33 |
Может кто помочь, нужно сделать скрипт, который при заходе на определенную страницу, будет в форме Select выбирать значение, в форму Input вводить значение и потом переключать фокус на Textarea, как это все можно сделать? |
CoolCmd > 31-01-2013 13:00:15 |
Kamui |
Kamui > 31-01-2013 16:55:43 |
CoolCmd пишет
https://sendsms.megafon.ru/ Код нужного блока Выделить код Код:<form id="sendsms" action="/sms.action" method="post" enctype="multipart/form-data" style="width:510px;"> <input type="hidden" name="charcheck" value="йцукен" /> <input type="hidden" name="lang" value="" /> <select name="prefix" tabindex='1' class="choose-number"> <option value="7926" name="prefix_f">+7 926</option> <option value="7925" name="prefix_f">+7 495(925*)</option> <option value="7921" name="prefix_f">+7 812(921*)</option> <option value="7931" name="prefix_f">+7 931</option> <option value="7920" name="prefix_f">+7 920</option> <option value="7922" name="prefix_f">+7 922</option> <option value="7923" name="prefix_f">+7 923</option> <option value="7924" name="prefix_f">+7 924</option> <option value="7927" name="prefix_f">+7 927</option> <option value="7928" name="prefix_f">+7 928</option> <option value="7937" name="prefix_f">+7 937</option> <option value="7929" name="prefix_f">+7 929</option> <option value="7930" name="prefix_f">+7 930</option> <option value="7932" name="prefix_f">+7 932</option> <option value="7938" name="prefix_f">+7 938</option> <option value="7933" name="prefix_f">+7 933</option> <option value="7939" name="prefix_f">+7 939</option> </select><input tabindex='2' maxlength="7" size="9" name="addr" type="text" id="addr" pp:pattern="[0-9]{7}" notice="Введите номер телефона абонента" placeholder="Номер телефона абонента" value="" class="telephone-subscriber" /> <p class="symbolcounter"><span id="availablelen">150</span> символов осталось</p> <textarea tabindex='3' rows="4" cols="29" name="message" id="message" pp:pattern="string" maxlength="150" notice="Введите сообщение (не более 150 символов)" placeholder="Ваше сообщение"></textarea> |
CoolCmd > 31-01-2013 18:29:31 |
Kamui скрытый текст Выделить код Код:// ==UserScript== // @id send-sms-megafuck // @name Послать SMS через Мегафон // @namespace CoolCmd // @homepage https://sendsms.megafon.ru/ // @include https://sendsms.megafon.ru/* // @grant none // @noframes // ==/UserScript== if (window.self == window.top) { document.getElementsByName('prefix')[0].value = '7939'; document.getElementsByName('addr')[0].value = '1234567'; document.getElementById('message').focus(); } можно сделать проще: сохранить страницу на диске и прописать в html нужные значения. самый интересный вопрос - как отключить капчу, а то вводить лениво. т.е. что слать в recaptcha_challenge_field и recaptcha_response_field?... |
Kamui > 31-01-2013 18:42:08 |
CoolCmd |
CoolCmd > 31-01-2013 19:47:01 |
Kamui |
Kamui > 06-02-2013 19:47:01 |
Поддерживается ли пользовательскими скриптами в // @include регулярные выражения? |
Infocatcher > 06-02-2013 19:50:24 |
Kamui Плюс всегда можно отфильтровать лишнее уже в самом скрипте. 06-02-2013 19:51:47 Kamui пишет
Всегда 424863? |
Kamui > 06-02-2013 20:17:44 |
Infocatcher пишет
Почитал, попробовал в GM, получилось. Infocatcher пишет
Нет, там не всегда, это номер топика, решил это вот так: [0-9]*$ Infocatcher пишет
Использую UserScriptLoader и похоже он не поддерживает регулярки в include, придется делать так, не подскажешь как реализовать? Выделить код Код:function findPos(obj) { var curtop = 0; if (obj.offsetParent) { do { curtop += obj.offsetTop; } while (obj = obj.offsetParent); return [curtop]; } } window.scroll(0,findPos(document.getElementById("topicmenu-options"))); |
Infocatcher > 06-02-2013 21:49:17 |
Kamui Выделить код Код:if(!/^http:\/\/4pda\.ru\/forum\/index\.php\?showtopic=\d+$/.test(location.href)) return; Если return не работает, а выдает ошибку, то код лучше завернуть в функцию, а то переменные могут на страницу попасть (смотря как запускается). И не проще ? 06-02-2013 21:50:16 |
Kamui > 06-02-2013 22:45:34 |
Спасибо, так и сделал Infocatcher пишет
Просто код я не сам писал, то что нашел и смог использовать. |
Inko7 > 27-02-2013 13:33:32 |
Есть такой старенький замечательный скриптик для показа превью картинок при наведении на ссылку: Выделить код Код:// ==UserScript== // @name Image previewer // @author Awesumness // @Notes Enjoy. // @include * // @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js // ==/UserScript== var url; var image; var x; var y; var w; var h; var hflip; $(document).ready(function() { setTimeout(fixedYet,2000); }); var fixedYet = function() { $("a[href*='.png'],a[href*='.gif'],a[href*='.jpg'],a[href*='.jpeg']") .removeAttr("title") .hover(imaGen) .mousemove(imaGen) .mouseout( function() { image.css({"display":"none"}); }); } function imaGen(e) { url = $(this).attr("href"); image = $("body > img.awesumImgPre[src='" + url + "']"); if ( image.length < 1 ){ $("body").append("<img class='awesumImgPre' src='" + url + "'/>"); image = $("body > img.awesumImgPre[src='" + url + "']"); image.css({ "position":"fixed", "z-index":"9001", "max-width":window.innerWidth/2, "max-height":window.innerHeight/2}); } image.css({"display":"block"}); x = e.pageX + 20 - window.pageXOffset; y = e.pageY + 20 - window.pageYOffset; flipit(); } function flipit(){ w = parseInt(image.css("width")); h = parseInt(image.css("height")); if(w == 0){ setTimeout(flipit,100); }else{ hflip = false; if(x+w+20 > window.innerWidth){ x-=w; hflip = true; } if(y+h+20 > window.innerHeight){ y-=h; if(hflip) x-=40; } image.css({ "left":x, "top":y}); } } Он начинает работать, когда страница полностью загружена и её части больше не обновляются. |
gapi > 24-03-2013 18:11:20 |
Возможно кому то покажется мой вопрос смешным, но мне хотелось бы все же узнать ответ. |
Zaycoff > 24-03-2013 18:50:45 |
gapi
|
gapi > 24-03-2013 19:01:04 |
Zaycoff Спасибо. Ответ получил. Возник следующий вопрос: А можно ли как-то заблокировать скрипты "оригинальные", что бы только пользовательские работали? (user.js или userContent.css - это не оно?) |
Zaycoff > 24-03-2013 20:04:47 |
gapi пишет
NoScript - тотальная блокировка скриптов. Adblock Plus (в окне нажимаете Ctrl+Shift+V и создаёте правила запрещающие загрузку ненужных скриптов) |
gapi > 24-03-2013 21:37:23 |
Zaycoff пишет
Установленны оба этих дополнения. Но ведь NoScript и пользовательские скрипты тогда блокирует?!(Или я ошибаюсь?) |
Zaycoff > 24-03-2013 21:45:25 |
gapi пишет
Не блокирует... |
gapi > 28-03-2013 02:16:04 |
Есть ли скрипт который подключал плеер на сайте "вконтакте" для воспроизведения видео и музыки в HTML5? |
Zaycoff > 28-03-2013 03:11:13 |
gapi пишет
|
gapi > 28-03-2013 03:24:10 |
Zaycoff пишет
что то он не работает у меня. а у Вас? |
Zaycoff > 28-03-2013 12:30:52 |
gapi пишет
Без понятия, соцсетями не увлекаюсь Попробуйте написать автору (открыть дискуссию на их форуме), судя по всему он русскоговорящий, может допилит... |
feas > 01-04-2013 21:32:33 |
http://userscripts.org/topics/96845?page=2 На литебите что-то подкрутили - перестало пахать - кто нить нашел ещё обходные пути? |
geczu > 17-04-2013 09:46:53 |
Нужно блокировать запрос на подтверждение выхода и получение сайтом даты. https://userscripts.org/scripts/show/164775 Не работает первый. И не слишком ли простой второй? Проверить первый можо зайдя на вики, править статью и не кликая отправить попытаться закрыть вкладку. |
CoolCmd > 17-04-2013 10:56:11 |
geczu пишет
в статье ведь написано, что не все используют onbeforeunload. возможно вики использует событие beforeunload. что бы его отключить, нужно перехватить и вызвать stopPropagation. geczu пишет
лучше вернуть какуюнить реальную дату, например 01.01.1980. |
geczu > 17-04-2013 18:20:48 |
CoolCmd А дату лучше вернуть текущую, только подправленную под США или Гринвич. Только вопрос. Если превести есть функции приведения даты к другой форме и не меняется ли она при приведении? |
1fesFFFF > 24-04-2013 17:35:10 |
Можно ли реализовать возможность, чтобы при открытии любого видео youtube в ссылку добавлялось no-cache и соответственно загрузка шла по новой ссылке? |
iDev.Pi > 03-05-2013 15:40:09 |
Посоны, а давайте вместе бороться с каками в поисковой выдаче поисковиков (янделя и гугеля)? Список некоторых найденных фрод-дорвеев http://mozillakaknastroit.ru/kak-udalit … id-t9.html http://kakotkryttermos.ru/aktivirovat-kak-udalit.html http://kakpereustanovitks.ru/kak-udalit … nokia.html http://kaksozdatserversteam.ru/kak-udal … ya-t9.html http://kakubratbochka.ru/kak-udalit-nen … c-hd2.html http://kakizmenitnikvks.ru/zt-morga-17- … troit.html http://kakpochistitgolovku.ru/kak-udali … iz-t9.html http://chemotkrytdvrfail.ru/kak-zaregis … latno.html http://faildwfchemotkryt.ru/kak-udalit- … p-t9b.html http://kakvzlomatwpaset.ru/kak-ubrat-t9.html http://kaksdelat2diska.ru/kak-udalit-ne … cepty.html http://kakustanovitfarcry2.ru/nokia-580 … varya.html http://kakustanovithasp.ru/samsung-yp-t … uzyku.html http://chemotkrytfaildbs.ru/kak-udalit- … -2012.html http://kakustanovitvilku.ru/samsung-yp- … uzyku.html http://kakperezagruzit.ru/kak-sozdat-se … sours.html http://skachatmp3drdeath.ru/kak-ustanov … r-100.html - сейчас не работает, но в поисковой выдаче Яндекса ещё есть. Найти ещё множество таких сайтов можно вбив в поисковик слово "как" и выбрав любой запрос из предложенных. Отличий у таких сайтов от нормальных - я заметил всего два: 1. У них у всех одинаковая фавиконка 2. Возможно, такие сайты есть не уже и не только в ru-зоне, но мне пока попадались только такие. А вот формат URL: Юзернеймы знающие js, создайте защиту от таких сайтов, пожалуйста. Список @include правил // @include http://www.google.*/search?* // @include https://www.google.*/search?* // @include http://www.google.*/webhp?* // @include https://www.google.*/webhp?* // @include http://www.google.*/#*q=* // @include https://www.google.*/#*q=* // @include http://www.google.*/ // @include https://www.google.*/ // @include https://encrypted.google.com/search?* // @include https://encrypted.google.com/#*q=* // @include http://yandex.*/yandsearch?* // @include https://yandex.*/yandsearch?* 1. В поисковой выдаче яндекса отображаются фавиконки сайтов. Можно фильтровать все, с такой фавиконкой: , но а. в выдаче гугла нет фавиконок, вариант подходит только для яндекса. б. иногда в выдаче яндекса фавиконки у некоторых сайтов не отображаются совсем. в. ради ускорения загрузки и облегчения веса страницы - яндекс собирает все фавиконки в единый файл. 2. Можно делать regex проверку урла сайта, но думаю, что будет много ложных срабатываний. 3. Можно приделать в скрипт возможность отправки куда-то урла сайта, чтобы юзеры скрипта могли рапортовать о новых найденных фрод-дорвеях, а кто-то будет собирать этот список, проверять и пополнять. У кого-нибудь есть ещё идеи по этому поводу? 03-05-2013 15:45:12 скрытый текст как удалить слово из словаря Т9 android inurl:kak |
Pony_Smile_Pack > 03-05-2013 16:10:06 |
Просто гуглом пользоватся. Раз яндекс выдаёт каки. iDev.Pi пишет
GoogleMonkeyR for Greasemonkey icons) for Greasemonkey |
iDev.Pi > 03-05-2013 16:12:32 |
Pony_Smile_Pack пишет
Я, пожалуй, буду пользоваться и Яндексом и Гуглом, а каки победить хочется. Pony_Smile_Pack пишет
Я не люблю столь злые скрипты: это же сколько дополнительных запросов он будет генерировать на массу различных сайтов и насколько это замедлит загрузку страницы. |
iDev.Pi > 03-05-2013 17:31:47 |
На всякий случай, пожаловался Яндексу. |
iDev.Pi > 16-05-2013 19:06:04 |
iDev.Pi пишет
Ответа не прислали, но похоже сайты забанили в поисковой выдаче |
rbfyec > 17-05-2013 20:31:27 |
Помогите довести до ума букмарклет show hidden elemens. Нужно, чтобы не открывалась пустая страница со словом "block" Выделить код Код:javascript:var tags=document.getElementsByTagName("*");for(var tg in tags){try{if(tags[tg].style.display=="none")tags[tg].style.display="block";}catch(e){}} |
Lex1 > 17-05-2013 22:19:02 |
Это делается оборачиванием кода в анонимную функцию: javascript: (function () {...})(); |
rbfyec > 17-05-2013 23:38:01 |
Спасибо, Lex1! |
Ferguss114 > 21-05-2013 19:26:53 |
Есть код Выделить код Код:var cont = document.getElementById('id').innerHTML; var win = open('','', 'width=400, height=600'); win.document.write(cont); Как можно сделать, чтобы в созданном окне содержимое cont отображалось в виде кода HTML? |
KooL > 21-05-2013 20:21:30 |
А можно просто в textarea запихнуть ничего не преобразуя. Ещё есть тег pre. Наверно, и другое всякое есть. |
CoolCmd > 21-05-2013 21:47:02 |
Ferguss114 пишет
Выделить код Код:var p = win.document.createElement('p'); p.textContent = cont; win.document.body.appendChild(p); |
Ferguss114 > 22-05-2013 19:09:41 |
Конечно желательно вариант попроще, когда не надо ничего преобразовывать. Спасибо всем, буду пробовать по всякому, что лучше подойдёт. Может ещё кто подскажет - как симулировать mouse click в searchbar? Не на кнопке search-go-button, а именно в поле для ввода текста. |
Ferguss114 > 22-05-2013 21:29:28 |
Фокус это я знаю, но мне надо именно клик. По сути два клика - один выделяет всё, второй сбрасывает выделение, курсор при этом стоит в строке поиска. Это можно запросто сделать в Autohotkey, но я хотел бы делать это мышиным жестом. Как подружить Autohotkey и FireGestures - понятия не имею... |
Ferguss114 > 22-05-2013 23:56:41 |
okkamas_knife пишет: добавь перед фокусом |
CoolCmd > 23-05-2013 00:21:03 |
Ferguss114 |
Ferguss114 > 23-05-2013 01:37:37 |
Этот код выделяет всё в строке поиска и на этом останавливаетя. Выделение не сбрасывается. |
CoolCmd > 23-05-2013 12:38:38 |
Ferguss114 здесь тебе подскажут. greasemonkey не работает в кишках лесы. |
rbfyec > 27-05-2013 20:41:31 |
Как узнать индекс элемента в массиве (допустим индекс формы в массиве document.forms) по её id или по имени? |
Infocatcher > 27-05-2013 21:49:47 |
rbfyec Выделить код Код:Array.indexOf(document.forms, document.getElementById("post")); // Только в Firefox Array.prototype.indexOf.call(document.forms, document.getElementById("post")); // Все современные браузеры |
rbfyec > 28-05-2013 00:26:55 |
Спасибо, Infocatcher
Конечно имелось в виду document.forms[] А как то же самое проделать с элементом, вложенным в форму? |
Infocatcher > 28-05-2013 07:40:34 |
rbfyec пишет
|
rbfyec > 29-05-2013 16:17:46 |
Infocatcher пишет Спасибо, Infocatcher Я хочу получить список всех потомков некоего элемента. Делаю Выделить код Код:x=content.document.getElementById('id').getElementsByTagName("*"); for (i=0;i<x.length;i++) { list = x[i].nodeName; } Получаю его, а как это вывести на экран в читабельном виде? Я пробовал создать окно в теле цикла, но получается - сколько повторений делает цикл, столько и окон открывается. И ещё вопрос. Если алертом я вывожу список атрибутов, список идёт сплошным текстом, без пробелов. Можно ли как-то придать тексту в алерте более вменяемый вид? |
Infocatcher > 29-05-2013 16:47:11 |
rbfyec Выделить код Код:var list = []; var nodes = document.getElementById("post").getElementsByTagName("*"); for(var i = 0, l = nodes.length; i < l; ++i) list.push(nodes[i].nodeName); alert(list.join("\n")); Альтернативный вариант: Выделить код Код:var nodes = document.getElementById("post").getElementsByTagName("*"); var list = Array.map(nodes, function(node) { return node.nodeName; }); alert(list.join("\n")); Для поддержки других браузеров надо заменить «Array.map» на «Array.prototype.map.call». Ну, и вместо alert() можно использовать Веб-консоль и console.log(). |
rbfyec > 29-05-2013 18:06:38 |
Infocatcher пишет
Я это знаю. |
Infocatcher > 29-05-2013 18:26:33 |
rbfyec пишет
В некоторых браузерах (и, если изменится реализация Greasemonkey, то и в Firefox) можно сломать встроенные в страницу скрипты. |
rbfyec > 01-06-2013 12:54:05 |
Есть сниппет для получения всех атрибутов элемента. Выделить код Код:Array.prototype.slice.call(document.getElementById("myId").attributes).forEach(function(item) { console.log(item.name + ': '+ item.value); }); Я его слегка переделал для ФФ - заменил Array.prototype.slice.call на Array.slice. Хотелось бы выводить полученный список алертом, но чтоб было как в консоли красиво, парами, атрибут - значение. И вопрос: я открываю консоль (не Firebug, а встроенную) и у меня там надпись " API ведения логов веб-консоли (console.log, console.info, console.warn, console.error) было отключено скриптом на этой странице." |
Infocatcher > 01-06-2013 17:01:52 |
rbfyec пишет
Выделить код Код:var attrs = Array.map(document.getElementById("myId").attributes, function(item) { return item.name + ': '+ item.value; }); alert(attrs.join("\n")); rbfyec пишет
Если до этого открывался Firebug, то закрыть его и обновить страницу. |
rbfyec > 01-06-2013 19:11:32 |
Infocatcher пишет
У меня постоянно даёт ошибку: SyntaxError: missing variable name |
Infocatcher > 01-06-2013 20:16:07 |
rbfyec пишет
У меня работает. |
rbfyec > 02-06-2013 12:25:09 |
После перезапуска браузера всё заработало. |
SuperUser > 02-06-2013 18:10:08 |
Интересно есть ли возможность перенести настройки скриптов при создании нового профиля без копирования файла prefs.js? Естественно о переносе строк по одной из этого файла нет и речи, слишком долго и не всегда всё гладко проходит. |
voqabuhe > 02-06-2013 22:02:56 |
SuperUser пишет
Перенести папку gm_scripts |
SuperUser > 03-06-2013 22:44:08 |
voqabuhe пишет
Пробовали? Перенеслись настройки? |
CoolCmd > 03-06-2013 23:50:14 |
SuperUser пишет
переносить нужно строки, которые начинаются на они все одним куском в файле лежат. перенести - дело 30 секунд. |
SuperUser > 04-06-2013 21:29:35 |
CoolCmd пишет
Спасибо. Вроде бы заработало. А там посмотрим. |
toxa > 05-06-2013 19:02:21 |
Как нужно использовать результат работы функции? Выделить код Код:function myFunc(a){ var x=n; var y=m; .............. .............. return [x, y]; } Я могу посмотреть этот результат: alert(myFunc(a)) |
Infocatcher > 05-06-2013 19:20:40 |
toxa Выделить код Код:function myFunc() { return [0, 1]; } var [x, y] = myFunc(); alert("x = " + x + "\ny = " + y); Не только для Firefox: Выделить код Код:function myFunc() { return [0, 1]; } var arr = myFunc(); var x = arr[0]; var y = arr[1]; alert("x = " + x + "\ny = " + y); А вообще, лучше откуда-нибудь отсюда начать: http://learn.javascript.ru/ |
toxa > 05-06-2013 21:18:49 |
Infocatcher пишет
Я там часто бываю. Но к сожалению далеко не всё понятно. Подскажите ещё как сделать, чтобы выражение типа document.images.myImage вставленное в prompt, можно было подставить вместо obj |
Infocatcher > 05-06-2013 23:20:11 |
toxa пишет
Зачем такое может понадобиться? Но если это не в тестовых целях, то, скорее всего, что-то не так с логикой скрипта. |
toxa > 06-06-2013 11:02:03 |
Infocatcher пишет
Да, это было нужно именно в тестовых целях. |
Biboran > 09-06-2013 17:14:19 |
Решено. |
Ferguss114 > 25-06-2013 19:52:56 |
Я тут спрашивал как создать окно и вставить в него html код, чтобы он отображался именно как код. Советы, которые мне дали, помогли, но хотелось бы чтоб код выглядел удобочитаемым, "лесенкой". Сейчас всё что удалось добиться - это если я вставляю document.body.innerHTML то выходит "лесенка". А если innerHTML отдельного элемента, код идёт сплошным текстом. Что можно сделать? |
Чайник > 01-07-2013 12:25:49 |
У меня есть скрипт, он выполняет на странице определённое действие. Можно составить условие, чтобы действие НЕ выполнялось, если выскочил alert или confirm или prompt? |
Lex1 > 01-07-2013 13:12:40 |
Ferguss114 скрытый текст Выделить код Код:javascript:(function() { var tab=' ', emptyTags={img:1, br:1, link:1, input:1, hr:1, meta:1}, xml=false, counter=0, showLines=1, doc=window.document, loc=window.location, wndFeatures='resizable=yes,scrollbars=yes,location=no', closeTags = '</span></li>'; var openTagNameHead=function(name) { return '<span class=\'tag\'><'+name+''; }; var openTagNameFoot=function(xmlemptyTag) { return (xmlemptyTag?'/':'')+'></span>'; }; var closeTagName=function(name, xmlemptyTag) { if(xmlemptyTag || emptyTags[name.toLowerCase()]) return ''; return '<span class=\'tag\'></'+name+'></span>'; }; var lineHead=function() { var lineNumber=counter.toString(); while(lineNumber.length<3) lineNumber='0'+lineNumber; return '<li class=\'line'+(showLines&&((counter++)&1)?' dark\'':'\'')+'><span>'; }; var escapeHTML=function(str) { return str.replace(/</g,'<').replace(/>/g,'>'); }; var getDoctype=function(doc) { var doctype=doc.doctype, code=''; if(doctype) { code=lineHead()+openTagNameHead('!DOCTYPE')+' <span class=\'attrDoc\'>'+doctype.nodeName+ (doctype.publicId?' PUBLIC \''+doctype.publicId+'\'':'')+ (doctype.systemId?'</span></span>'+closeTags+lineHead()+'<span class=\'tag\'><span class=\'attrDoc\'>'+tab+'\''+doctype.systemId+'\'':'')+'</span>'+openTagNameFoot()+closeTags; } return code; }; var getAttrs=function(ele) { var attrs=ele.attributes, attr=null, ret=''; for(var i=0; attr=attrs[i]; i++) { if(attr.specified && attr.value) { ret+=' <span class=\'attrTitle\'>'+attr.name+'</span>=<span class=\'attrValue\'>\x22'+escapeHTML(attr.value.replace(/\t/g, tab))+'\x22</span> '; } } return ret; }; var getTextNodeData=function(ele) { return escapeHTML(ele.nodeValue.replace(/[\n\t\r\u00A0]+ */g,'').replace(/ +/g,' ')); }; var getIndent=function(deep) { var i=0, ret=''; while(i<deep) { ret+=tab; i++; } return ret; }; var getLayer=function(ele, deep, singleText) { var text='', indent=getIndent(deep++); switch (ele.nodeType) { case 1: { var childs=ele.childNodes, child=null; var simple=(childs.length==0)||(childs.length==1 && childs[0].nodeType==3); var xmlemptyTag=xml&&childs.length==0; var ret=lineHead()+indent+openTagNameHead(ele.nodeName)+getAttrs(ele)+openTagNameFoot(xmlemptyTag); if(!simple) ret+=closeTags; for(var i=0; child=childs[i]; i++) { ret+=getLayer(child, deep, !simple&&child.nodeType==3); } if(simple) { ret+=(ele.nodeName.toLowerCase()=='textarea'?escapeHTML(ele.value):'')+closeTagName(ele.nodeName, xmlemptyTag)+closeTags; } else { ret+=lineHead()+indent+closeTagName(ele.nodeName, xmlemptyTag)+closeTags; } return ret; } case 3: { if((text=getTextNodeData(ele)) && singleText) { return lineHead()+indent+text+closeTags; } else { return text; } } case 4: { text=getTextNodeData(ele); return lineHead()+indent+'<span class=\'cdata\'><![CDATA[</span>'+text+'<span class=\'cdata\'>]]></span>'+closeTags; } case 8: { text=getTextNodeData(ele); return lineHead()+indent+'<span class=\'comment\'><!--'+text+'--></span>'+closeTags; } } return ele.nodeType }; var getLiveMarkup=function(selWin) { var ele, markup=''; if(selWin) { var range=selWin.getSelection().getRangeAt(0), pEle=range.commonAncestorContainer; if(pEle.nodeType==3 || pEle.nodeType==4)pEle=pEle.parentNode; ele=pEle.cloneNode(false); ele.appendChild(range.cloneContents()); var startCon=range.startContainer, endCon=range.endContainer; if(startCon != pEle.firstChild || (startCon.nodeType == 3 && range.startOffset != 0))ele.insertBefore(doc.createTextNode('\u2026'), ele.firstChild); if(endCon != pEle.lastChild || (endCon.nodeType == 3 && range.endOffset != endCon.nodeValue.length))ele.appendChild(doc.createTextNode('\u2026')); } else { markup=getDoctype(doc); ele=doc.documentElement; }; markup+=getLayer(ele,0); return markup; }; var getSelWin=function(w) { if(w && w.getSelection){ if(w.getSelection().toString())return w; for(var i = 0, f, r; f = w.frames[i]; i++){ try{if(r = arguments.callee(f))return r}catch(e){} } } }; var selWin=getSelWin(window); if(selWin){ doc=selWin.document; loc=selWin.location; wndFeatures+=',width=800,height=500,left=100,top=100'; }; xml=/[a-z]/.test(doc.documentElement.nodeName); var markup='<!DOCTYPE html PUBLIC><html><head><title>Snapshot: '+((doc.getElementsByTagName('title').length && escapeHTML(doc.getElementsByTagName('title')[0].text)) || (loc.protocol+'//'+loc.host+loc.pathname))+'</title>' +'<style type=\'text/css\'>' +'body{padding:0 5px;margin:0;font-family:sans-serif;font-size:.7em;background-color:#FFF;color:#000;}#content{white-space:pre-wrap}ol{color:#999;}span{color:#000}.tag{color:#05F}.attrTitle{color:#E00}.attrValue{color:#C0C}.attrDoc{color:#800080}.comment{color:#008000}.cdata{color:#63D}.line{margin:0;padding:0}.dark{background-color:#FAFAFA}' +'</style></head><body>' +'<ol id=\'content\'>'+getLiveMarkup(selWin)+'</ol></body></html>'; var wnd=window.open('about:blank', '_blank', wndFeatures); wnd.document.write(markup); wnd.document.onkeydown=function(e){if(e.keyCode==27)wnd.close()}; wnd.document.close(); })() 01-07-2013 13:21:27 |
Чайник > 01-07-2013 14:19:16 |
Я ошибся темой, речь идёт о скрипте не GM, а Firegestures. Но принцип наверное один. |
Lex1 > 01-07-2013 14:49:35 |
Ну, вероятно класс, Object.prototype.toString.call(document.commandDispatcher.focusedWindow).slice(8, -1) не должен быть ChromeWindow Или, что в данном случае кажется похожим - в фокусе должна быть сама страница, а не интерфейс браузера. |
Dumby > 01-07-2013 15:27:35 |
Чайник пишет
У меня вот так сработало, если в начало кода |
Kamui > 01-07-2013 15:36:33 |
Lex1 Я хочу чтобы отправлялась строка вида http://yandex.ru/yandsearch?country=ru&text=ЦЕНА Валюта1 to Валюта2 и парсил значение элемента TR[class="z-converter__row"] и выводил все как и раньше, возможно ли? |
Чайник > 01-07-2013 15:52:17 |
Lex1, работают оба варианта: document.commandDispatcher.focusedWindow!='[object ChromeWindow]' и document.commandDispatcher.focusedWindow.top == content (кстати, а почему вы забраковали первый вариант?) Dumby, этот вариант тоже работает if (gBrowser.selectedBrowser.hasAttribute("tabmodalPromptShowing")) return; Я теперь и думаю: а какой из них оптимальный? |
Lex1 > 01-07-2013 19:18:55 |
Чайник
Он был слишком уж похож на первый. |
Чайник > 01-07-2013 19:56:38 |
Lex1 и Dumby Благодарю! |
Lex1 > 01-07-2013 21:25:23 |
Kamui Выделить код Код:return 'http://yandex.ru/yandsearch?country=ru&text=' + precio + '+' + monedaFrom + '+' + monedaTo; Второе на скрытый текст Выделить код Код:var convertir = function (){ var url = urlConvert(); GM_xmlhttpRequest({ method: 'GET', url: url, onload: function(r) { var json = r.responseText; var doc = document.implementation.createHTMLDocument(""); doc.documentElement.innerHTML = json; json = doc.querySelectorAll('.z-converter__data > strong'); $('res-igcc').innerHTML = json[0].textContent + ' = ' + json[1].textContent; $('monedaFrom').value = GM_getValue('from'); $('monedaTo').value = GM_getValue('to'); } }); } |
Kamui > 02-07-2013 07:00:58 |
Lex1 Блин, все-таки офигенский скрипт теперь получился, можно практически под любой сайт переделать |
Чайник > 11-07-2013 19:45:03 |
Есть код Как тут сделать event listener на загрузку страницы? |
CoolCmd > 11-07-2013 20:15:53 |
Чайник добавить http://www.url.php в @include Выделить код Код:open('http://www.url.php','').document.addEventListener('DOMContentLoaded', OnDOMContentLoaded, false); |
Чайник > 11-07-2013 21:15:39 |
CoolCmd пишет
Не получается у меня. Я пробую открыть главную страницу форума - запускаю этот код через Scratchpad (просто чтоб попробовать) Выделить код Код:open('http://forum.mozilla-russia.org/index.php','').document.addEventListener('DOMContentLoaded', function(){alert(1)}, false); Алерт не появляется. |
rbfyec > 23-07-2013 22:36:25 |
Как можно сделать, чтобы текст в адресной строке выделился и потом выделение пропало и повторить это несколько раз? Но более одного раза повторить не получается |
rbfyec > 24-07-2013 10:44:59 |
okkamas_knife пишет
Это для кого как... А зачем в первой строчке задержка 10 м/сек? И попутно ещё спрошу: какая команда может поместить фокус на тело страницы? |
human > 06-08-2013 08:58:06 |
возможно ли выключить Greasemonkey без перезагрузки браузера ? |
voqabuhe > 06-08-2013 10:00:15 |
human пишет
На иконку в Панели дополнений клацни. |
human > 14-08-2013 02:10:57 |
voqabuhe, |
toxa > 31-08-2013 23:06:07 |
Можно ли тут указать ссылку на документ? Или каким образом можно заменить большой кусок html кода страницы, чтоб не писать этот кусок в скрипте. Можно ли этот кусок кода для замены сделать в виде отдельного докмента, а в код подставить ссылку на него? |
toxa > 05-09-2013 14:52:55 |
Ну какие же будут подсказки, господа? |
Infocatcher > 05-09-2013 18:37:48 |
toxa |
toxa > 06-09-2013 12:32:53 |
Infocatcher пишет
Спасибо! То что надо! А подскажите ещё одну вещь. Выделить код Код:var newDiv = document.createElement('div'); newDiv.innerHTML = '<div><input type="submit" value="clear all" style="width:240px; margin:0 2px" onclick=document.forms[0].elements[0].value=""></input><input type="submit" value="select" style="width:240px; margin:0 4px" onclick=document.forms[0].elements[0].select()></input></div>' window.document.getElementsByTagName('tr')[3].appendChild(newDiv); Если запускаю его через Scratchpad, всё нормально, в консоли ошибок нет. Но если пробую выполнить этот код через Firegestures или Keyconfig, код не работает, а в консоли Выделить код Код:Ошибка: некорректно Исходный код: <div xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><div><input type="submit" value="clear all" style="width:240px; margin:0 2px" onclick=document.forms[0].elements[0].value=""></input><input type="submit" value="select" style="width:240px; margin:0 4px" onclick=document.forms[0].elements[0].select()></input></div></ В конце виден кусок закрывающего тега, который не знаю откуда взялся. Upd |
Infocatcher > 06-09-2013 13:18:28 |
toxa пишет
Вместо window и document надо использовать content и content.document. |
toxa > 06-09-2013 17:54:32 |
Infocatcher |
panther26 > 03-10-2013 14:15:21 |
подскажите плиз. есть таблица. содержит разные элементы. есть ячейка с текстом Выделить код Код:<table class="tborder" width="100%" align="center"> <tbody><tr> <td class="tcat"> <div class="smallfont" style="float:right">текст1</div> текст2 </td> </tr> ... нужно по тексту в ячейке найти таблицу и скрыть ее с формы. как сделать? |
CoolCmd > 03-10-2013 19:41:21 |
panther26 по тексту долго. если таблица не скачет по форме, то проще найти с помощью css селектора, например с помощью querySelector(). Выделить код Код:form.querySelector('.tcat > .smallfont').parentNode.parentNode.parentNode.parentNode ну а по текесту Выделить код Код:var c = form.getElementsByClassName('smallfont'); for (var i = 0, e; e = c[i]; ++i) { if (e.fistChild.nodeValue == 'текст1') { return e.parentNode.parentNode.parentNode.parentNode; } } |
panther26 > 04-10-2013 16:13:21 |
CoolCmd пишет
cпасибо за ответ! к сожалению, так не получится, на странице подобных таблиц много очень. уникален только текст в ячейке CoolCmd пишет
то есть тут надо еще цикл организовать для элементов classname 'smallfont'? к сожалению, в скриптах не сильно разбираюсь |
CoolCmd > 05-10-2013 19:50:47 |
panther26 |
Kiril__777 > 08-10-2013 13:12:53 |
На хп все нормально с этим скриптом, но вот на win7 он вешает браузер на некоторых страницах, скажите, возможно подправить что-нибудь здесь? скрытый текст // ==UserScript== // @name Force Wrap // @namespace http://zoolcar9.lhukie.net/mozilla/userscripts/ // @include * // @exclude http://mail.google.com/* // @exclude */rss/* // @exclude *rss* // @exclude http://*/rss/*.xml // @exclude https://*/rss/*.xml // @description Wrap text automatically. Based on Jesse Rudderman's bookmarklet Force Wrap (http://xrl.us/hsn3) and Reset body HTML (http://xrl.us/hsn5). // ==/UserScript== function F(n) { F(document.body); // Coded added to fix regression is Firefox 2.0/3.0 dev builds Спасибо |
Kiril__777 > 12-10-2013 11:00:03 |
Скрипт то работает, вот хотябы здесь. Помогите пожалуйста. |
Чайник > 18-10-2013 18:28:24 |
У меня есть скрипт, в котором записано: И вот на Google он работает нормально на всех страницах. Почему это и что можно сделать? |
Lex1 > 18-10-2013 18:38:58 |
Чайник 18-10-2013 18:40:20 |
Чайник > 18-10-2013 22:33:12 |
Lex1 пишет
Скрипт этого не делает, потому что я не написал это в коде Я не знаю как сделать через DOMNodeInserted и тупо сделал Или этот вариант нежелателен? |
Lex1 > 18-10-2013 23:13:05 |
Чайник |
Чайник > 19-10-2013 11:56:18 |
Lex1 пишет
Спасибо Lex1, так работает! А зачем этот огромный скрипт для удаления редиректов Google? |
CoolCmd > 19-10-2013 12:42:54 |
Lex1 пишет
только не это. тыц желтенькое Чайник пишет
userscripts.org опять упал... но предположу, что автор нуп. надеюсь, он не станет писать расширения для лисы. 19-10-2013 12:48:16 можно заменить на потому что гугл теперь ищет только в https. |
Mishania > 20-10-2013 10:17:00 |
|
CoolCmd > 23-10-2013 00:47:57 |
CoolCmd пишет
посмотрел. он не нуб, просто слоупок. так что для расширений лисы серано не годен. |
Ferguss114 > 23-10-2013 20:11:36 |
Как в просмотре кода выделенного фрагмента реализована подсветка? Встроенный поиск F3 находит требуемое (в исходнике страницы), только если это plain text, без тегов. А "Исходный код выделенного фрагмента" умеет подсветить и текст, в котором теги были. |
toxa > 28-10-2013 19:48:22 |
Почему этот код Выделить код Код:if (document.location.hostname="my_host"){ function remove() { links=document.getElementsByTagName('a'); for(var i=0; i<links.length; i++) links[i].removeAttribute('href') } remove() } вызывает перезагрузку страницы? |
Dumby > 28-10-2013 20:25:31 |
toxa |
toxa > 28-10-2013 21:59:56 |
Точно! |
Kiril__777 > 06-11-2013 13:35:14 |
Может кто-нибудь попробует помочь? |
Ferguss114 > 19-11-2013 13:56:06 |
Почему здесь обработчик onclick срабатывает только один раз? |
Infocatcher > 19-11-2013 14:13:58 |
Ferguss114 |
Ferguss114 > 19-11-2013 16:58:57 |
Я переделал hasAttribute() на getAttribute() и всё заработало. так работает скрытый текст Выделить код Код:<htlm> <body> <div style="background-color:skyblue" id="mydiv1" onclick="changeColor()">DIV1 ---- кликнуть сюда для изменения цвета DIV2----</div> <br> <div style="background-color:red" id="mydiv2">DIV2</div> <script> function changeColor() { div = document.getElementById('mydiv2'); if (div.getAttribute('style') == 'background-color:red') { div.setAttribute('style', 'background-color:yellow') } else { // <<<<<<<<<<<<<< div.setAttribute('style', 'background-color:red') // <<<<<<<<<<<<<< } } </script> </body> </htlm> а так нет скрытый текст Выделить код Код:<htlm> <body> <div style="background-color:skyblue" id="mydiv1" onclick="changeColor()">DIV1 ---- кликнуть сюда для изменения цвета DIV2----</div> <br> <div style="background-color:red" id="mydiv2">DIV2</div> <script> function changeColor() { div = document.getElementById('mydiv2'); if (div.getAttribute('style') == 'background-color:red') { div.setAttribute('style', 'background-color:yellow') } if (div.getAttribute('style') != 'background-color:red') { // <<<<<<<<<<<<<< div.setAttribute('style', 'background-color:red') // <<<<<<<<<<<<<< } } </script> </body> </htlm> И последнее: если я хочу передать event в качестве аргумента, когда нужно писать полностью event, а когда достаточно е? вроде должен понимать е |
Infocatcher > 19-11-2013 17:30:02 |
Ferguss114 пишет
Ну и что должно происходить, когда style='background-color:red' ? Ferguss114 пишет
Выделить код Код:node.onclick = function(anything) { ... }; node.addEventListener("click", function(anything) { ... }, false); node.setAttribute("onclick", "doSomething(event);"); |
bunda1 > 19-11-2013 20:11:52 |
Ferguss114 Выделить код Код:(div.getAttribute('style') == 'background-color:red') ? div.setAttribute('style', 'background-color:yellow') : div.setAttribute('style', 'background-color:red'); |
Ferguss114 > 19-11-2013 20:32:56 |
Infocatcher, bunda1 |
voqabuhe > 12-12-2013 16:20:39 |
Понравился скрипт Lights out any page for Greasemonkey, но вся его ценность для меня пропадает, из-за того что для его работы требуется разрешить Java Script. В связи с этим вопрос, можно ли как-то подправить данный скрипт, чтобы он работал и при запрещённых Java Script? |
voqabuhe > 17-12-2013 01:54:24 |
После обновления NoScript до v 2.6.8.8rc2 проблема исчезла
|
hartumov > 02-01-2014 19:46:47 |
Как сделать чтобы результат не был 0? |
Infocatcher > 02-01-2014 20:19:46 |
hartumov пишет
Считывать данные из полей для ввода перед вычислением, а не при загрузке страницы. |
hartumov > 03-01-2014 00:07:43 |
Infocatcher пишет
То есть присваивать данные из полей в переменные внутри функции getRes? А если эти данные из полей ввода должны использоваться ещё и в другой функции? Как сделать чтоб она их увидела? |
Infocatcher > 03-01-2014 00:17:19 |
hartumov |
hartumov > 03-01-2014 00:31:49 |
Infocatcher |
hartumov > 03-01-2014 17:11:41 |
Как сделать EventListener на загрузку этого окошка, чтобы по окончании загрузки в инпут вставился мой текст? Выделить код Код:w=open('','', 'width=370,height=120'); w.document.body.innerHTML="<center><p><input type='text size='10'></p></center>" |
hartumov > 03-01-2014 19:53:46 |
Ну это я для наглядности взял окошко, где кроме инпута больше ничего нет. А EventListener на загрузку всплывающего окна — это очень сложно? |
Infocatcher > 03-01-2014 21:18:46 |
hartumov пишет
Откуда открыть? У обычных страниц бедет доступ только к страницам с того же домена. Выделить код Код:var w=open(location.href, '', 'width=370,height=120'); w.addEventListener("load", function setup() { w.removeEventListener("load", setup, false); w.document.body.innerHTML="<center><p><input type='text size='10' value='1'></p></center>"; }, false); 03-01-2014 21:19:38 |
hartumov > 04-01-2014 00:25:00 |
Infocatcher Выделить код Код:var w=open('file:///C:/Calc.html', '', 'width=370,height=120'); w.addEventListener("load", function setup() { w.removeEventListener("load", setup, false); w.content.document.getElementsByTagName('input')[0].value='TEST'; }, false); Текстовые поля я сделал пустыми. Теперь пытаюсь получить первый инпут и вставить в него строку 'TEST'. В идеале я хотел вставлять содержимое буфера, но пока хоть так. А с таймаутом да, работает, я ещё вчера пробовал. Вне этой функции - open() - можно свободно получить любой элемент. А изнутри - не выходит. |
Infocatcher > 04-01-2014 01:07:35 |
hartumov пишет
Да, важно, там совсем другое окно и совсем другая функция open(), которая возвращает ссылку на окно браузера, внутри которого уже находится окно со страницей (которая еще не загрузилась на момент загрузки окна браузера). Можно сделать вот так: Выделить код Код:var w = window.openDialog( "chrome://browser/content/", "_blank", "chrome,dialog=no,width=370,height=120", "file:///F:/test.html" ); w.addEventListener("load", function setup(e) { w.removeEventListener(e.type, setup, false); //w.content.document.getElementsByTagName('input')[0].value='TEST'; var browser = w.gBrowser.selectedBrowser; browser.addEventListener("load", function setupContent(e) { browser.removeEventListener("load", setupContent, true); //w.content.document.getElementsByTagName('input')[0].value='TEST'; browser.contentDocument.getElementsByTagName('input')[0].value='TEST'; }, true); }, false); Но зачем это нужно? 04-01-2014 01:11:28 hartumov пишет
Казалось бы, что это все делает в теме про Greasemonkey. Но из расширений никаких ограничений нет, а в контексте главного окна браузера вообще доступна готовая функция readFromClipboard() из chrome://browser/content/browser.js. |
hartumov > 06-01-2014 16:03:04 |
okkamas_knife пишет
Я б не сказал, что этот вариант для меня проще. Я толком и не разобрался что там к чему А вот вариант Infocatcher-а это как раз то что я и хотел. Работает как часы! У меня возник еще вопрос по экранированию кавычек. Почему здесь обработчик онклик перестает работать если я экранирую двойные кавычки? http://learn.javascript.ru/play/LeSTEb Именно здесь это не нужно, здесь используются разные их виды, но я хочу понять в чем причина. |
Infocatcher > 06-01-2014 18:20:09 |
hartumov пишет
В значениях атрибутов экранирование не работает, там можно только " или '/' написать. Выделить код Код:document.getElementsByTagName("input")[0] .setAttribute( "onclick", "document.getElementsByTagName(\"textarea\")[0].value=\"test test test\"" ); |
Ki_rrrilll > 05-02-2014 12:07:00 |
У меня вызывается prompt в котором есть дефолтный текст. И вот этот текст изначально выделен, а мне это не удобно. |
Ki_rrrilll > 13-02-2014 20:23:19 |
Что ж, никаких вариантов? |
Infocatcher > 13-02-2014 20:27:01 |
Ki_rrrilll |
Ki_rrrilll > 13-02-2014 21:45:33 |
Infocatcher пишет
А НЕприменительно к Greasemonkey? |
Infocatcher > 13-02-2014 21:53:03 |
Ki_rrrilll пишет
Из расширения можно открыть свой диалог. |
Ki_rrrilll > 13-02-2014 22:54:40 |
Infocatcher пишет
Ну вот это я и имел в виду — отследить открытие стандартного промпта и как-то убрать выделение у текста. |
Infocatcher > 14-02-2014 12:08:09 |
Ki_rrrilll пишет
Только есть тонкость: могут быть сложности и изменением только одного конкретного диалога. Ki_rrrilll пишет
Да что угодно, в принципе. Весь вопрос только в получении textbox'а из этого диалога. |
andy7 > 28-02-2014 21:31:10 |
есть такой скрипт: http://userscripts.org/scripts/review/93679 |
toxa > 09-04-2014 21:17:06 |
Как совместить переменную и regexp? var val = a; |
Infocatcher > 09-04-2014 22:27:59 |
toxa |
toxa > 09-04-2014 23:08:33 |
Я нашёл на русском, как это делается http://www.cyberforum.ru/javascript-reg … 42589.html но не очень получается... Я хочу через match(), составил regexp (не уверен, правильно ли?) теперь надо как-то подставить перед этим выражением мою переменную val чтобы получилось Я пробовал создать new RegExp, но не получается. |
toxa > 10-04-2014 00:32:12 |
Вроде разобрался |
oleg.sgh > 09-05-2014 09:22:48 |
Попытался сделать скрипт для установки белого фона на определенном сайте но он не работает скрытый текст // ==UserScript== // @name mail // @namespace mail.ru // @description white // @include http://my.mail.ru/* // @version 1 // @grant none // ==/UserScript== document.body.style.background = “#ffffff”; Что не так? Сайт userscripts.org не открывается. |
CoolCmd > 09-05-2014 20:14:11 |
oleg.sgh для этого не нужен greasemonkey. |
oleg.sgh > 09-05-2014 20:24:34 |
CoolCmd пишет
там либо серый фон либо с цветочками и ягодками |
Pony_Smile_Pack > 17-05-2014 04:26:04 |
А где теперь брать скрипты? Сайт userscripts.org - is dead. |
Uxapb > 17-05-2014 08:56:23 |
Pony_Smile_Pack пишет
Предлагают тут. |
GOT > 17-05-2014 09:53:49 |
А userscripts.org совсем умер? Пысы посоветуйте пожалуйста скрипт для скачки с файлообменников без капчи и ожидания. |
feas > 17-05-2014 10:22:34 |
GOT пишет
|
Hastla > 28-05-2014 14:50:20 |
для скачивания музыки в VK скрипт бы. |
villa7 > 28-05-2014 15:35:51 |
Hastla > 28-05-2014 15:47:16 |
villa7 |
villa7 > 28-05-2014 15:50:04 |
Hastla |
Pony_Smile_Pack > 28-05-2014 15:50:40 |
Hastla пишет
|
Hastla > 28-05-2014 16:03:34 |
Я не знаю даже что это такое.
Вот такое, только скрипт. Чтобы файл скачивался с именем "исполнитель - название.mp3" |
villa7 > 28-05-2014 16:20:48 |
Hastla |
Pony_Smile_Pack > 28-05-2014 16:21:22 |
Hastla пишет
Вот такое, только расширение. |
villa7 > 28-05-2014 16:44:05 |
Hastla |
Mishania > 30-05-2014 19:36:38 |
Есть рабочий скрипт YouTube Center? |
aleks_123 > 30-05-2014 20:50:53 |
Mishania |
Mishania > 30-05-2014 21:32:45 |
aleks_123 |
aleks_123 > 30-05-2014 21:42:56 |
Mishania |
villa7 > 30-05-2014 21:51:05 |
aleks_123 |
Mishania > 30-05-2014 21:57:11 |
villa7 |
GOT > 09-06-2014 09:14:47 |
Этот сайт тоже умер, увы http://userscripts.org:8080/ |
amin01 > 09-06-2014 09:47:24 |
GOT пишет
вот такие ещё есть |
Nasona > 10-06-2014 13:24:05 |
Можно ли реализовать возможность, чтобы при открытии любого видео youtube в ссылку добавлялось no-cache и соответственно загрузка шла по новой ссылке? |
Xant1k > 12-06-2014 17:53:14 |
del |
CoolCmd > 12-06-2014 19:13:02 |
okkamas_knife пишет
и поимей проблемы на фотохостингах. Xant1k |
Pony_Smile_Pack > 12-06-2014 22:30:11 |
Xant1k пишет
Связано это с тем что discogs не хочет, чтобы на него переходили с рутрекера. 12-06-2014 22:33:55
вроде нет ещё |
Mishania > 13-06-2014 07:13:30 |
Перестал работать GoogleMonkeyR. Поделитесь рабочей версией. |
Astana76 > 13-06-2014 12:09:01 |
Mishania пишет
скрытый текст |
Sagen > 13-06-2014 23:00:25 |
То, что выложено выше соответствует http://userscripts.org:8080/topics/199305?page=3 Скрипт работает, но пару дней назад, в очередной раз, сломалась подгрузка страниц. Если кто починит будет очень здорово. |
Astana76 > 13-06-2014 23:44:55 |
Sagen пишет
если быть точнее, то соответствует этому посту : http://userscripts.org:8080/topics/212234#posts-613988 и всё работает |
Sagen > 13-06-2014 23:56:40 |
Может в ночнушке дело. Ловлю вот такое. |
Astana76 > 14-06-2014 00:11:16 |
Sagen, может и в ночнушке дело ... на 30-ке примерно так : скрытый текст сам огорчился, когда скрипт у меня перестал работать пару недель назад .... потом по комментам там почитал и скачал рабочую для меня версию ( которую и выложил выше) |
Pony_Smile_Pack > 14-06-2014 00:20:54 |
А я как коменты почитал, пару |
Sagen > 14-06-2014 00:24:16 |
Сейчас в крайний хром скрипт киданул, все работает Беда печаль. В хроме, кстати, сохраненные настройки в GooglemonkeyR settings отображаются. В общем скрипт рабочий, но что-то пошло не так. |
vitalii201 > 14-06-2014 18:08:52 |
Astana76, большое спасибо! |
Pippo78 > 16-06-2014 15:11:07 |
Скрипт GoogleMonkeyR не работает с https://www.google.com.ua/ . Может кто-нибудь проверить? |
Pony_Smile_Pack > 16-06-2014 15:36:53 |
Pippo78 пишет
Работает скрытый текст |
Pippo78 > 16-06-2014 16:17:46 |
Pony_Smile_Pack большое спасибо все работает если включить безопасный поиск в гугл. Если безопасный поиск отключен , то и скрипт не работает. |
Pony_Smile_Pack > 16-06-2014 17:38:08 |
Pippo78 пишет
Ну, у меня отключён. |
Sagen > 17-06-2014 19:28:38 |
Релизнули гризманку 2.0 Смотреть осторожно, предварительно прочитав описание. |
Крошка Ру > 22-06-2014 00:32:27 |
|
freakos > 03-07-2014 02:57:05 |
Здравствуйте! код: Выделить код Код:<div id="gedit_user_requests8483670" class="gedit_user"><div class="gedit_user_bigph_wrap fl_l" onmouseover="GroupsEdit.bigphOver(this, 8483670)"><a class="gedit_bigph" href="/albums8483670" style="margin-top: 100px;"><span class="gedit_bigph_label">Увеличить</span></a><a class="gedit_user_thumb" href="/id8483670"><img class="gedit_user_img" src="http://cs425424.vk.me/v425424670/69b9/HdUFBi2gkHo.jpg"></a></div><div class="gedit_user_info fl_l"><div class="gedit_user_name"><a class="gedit_user_lnk" href="/id8483670">Александр Шевернёв</a></div><div class="gedit_user_btns"><div class="gedit_user_buttons"><div class="button_blue fl_l"><button onclick="GroupsEdit.uAction(this, 8483670, 'd6c84f2b3f7cbd34ee', 1)">Принять в группу</button></div><div class="button_cancel gedit_user_cancel_button fl_l"><div class="button" onclick="GroupsEdit.uAction(this, 8483670, 'd6c84f2b3f7cbd34ee', -1)">Отклонить заявку</div></div></div></div></div><div class="gedit_user_actions fl_r"></div></div> 8483670 (id анкеты) необходимо вывести после имени и фамилии, как на картинке: |
CoolCmd > 04-07-2014 09:34:25 |
freakos Выделить код Код:var a = document.getElementsByClassName('gedit_user_lnk'); for (var i = 0, b; b = a[i]; ++i) { var c = document.createElement('span'); c.style.marginLeft = '1em'; c.textContent = b.getAttrubute('href').substr(3); b.parentNode.appendChild(c); } не проверял |
null28 > 09-07-2014 21:18:09 |
Проблема с post-запросом. Обращаюсь к пхп-файлу таким образом: Выделить код Код:$("input[value='OK']").click(function(){ console.log('test'); var gmxml = GM_xmlhttpRequest({ method : "POST", url : "http://myserv.w.pw/save_post.php", data: "mes=qwer123&thrd=555", onload : function() { console.log('success'); }, onerror:function() { console.log('FAIL '); } }); }); Запрос успешно проходит. Однако в пхп-файле $_POST['mes'] и $_POST['thrd'] пустые, print_r тоже пустые массивы даёт. ЧЯДНТ? |
Infocatcher > 09-07-2014 22:40:17 |
null28 ? |
null28 > 09-07-2014 22:51:44 |
и правда, теперь работает... хотя до этого пробовал, не получалось. похоже не проверил после того как на сервере хейдер поставил... |
Zloy_Gelud > 28-07-2014 11:49:18 |
Возможно ли с помощью GM, ну или любыми другими средствами браузера/расширений, подменять загружаемый скрипт с определенной страницы? Например, грузится с сайта скрипт "grid_core_item.js". Могу ли я его заменить локальным скриптом, либо со своего домена? Спасибо. PS. Временно решил вопрос с помощью Fiddler'a. Но хочется организовать это без дополнительных программ. |
CoolCmd > 29-07-2014 11:15:35 |
Zloy_Gelud т.е. скрипт находится не в html, а в отдельном файле? |
Zloy_Gelud > 29-07-2014 11:19:44 |
CoolCmd пишет
Да. Скажу больше - он подтягивается с помощью XHR. |
CoolCmd > 29-07-2014 11:24:01 |
Zloy_Gelud |
Zloy_Gelud > 29-07-2014 11:26:52 |
CoolCmd пишет
Я был бы тебе очень признателен, если бы ты накидал небольшой пример для моего случая. |
CoolCmd > 29-07-2014 17:19:11 |
Zloy_Gelud |
Zloy_Gelud > 29-07-2014 17:29:07 |
CoolCmd CoolCmd пишет
Я с помощью beforescriptexecute блокировал. CoolCmd пишет
А что это даст? Что можно такого сделать в расширении, что нельзя реализовать в скрипте GM? А то я нуб в этом. |
CoolCmd > 29-07-2014 17:34:55 |
Zloy_Gelud пишет
это только для inline скриптов. Zloy_Gelud пишет
возможность блокировать загрузку, примерно как это делает адблок. в лесе скорее всего есть для этого api. |
Zloy_Gelud > 29-07-2014 17:37:17 |
CoolCmd пишет
Я не знаю для чего он предназначен, но динамически подгружаемые скрипты им тоже можно отсекать. |
CoolCmd > 29-07-2014 19:14:22 |
Zloy_Gelud |
Xant1k > 29-07-2014 20:40:30 |
del |
kobrin13 > 11-08-2014 02:22:32 |
В общем дело обстоит так. Работа предстоит с Firefox. |
iDev.Pi > 11-08-2014 08:38:00 |
kobrin13 |
kobrin13 > 11-08-2014 09:47:41 |
iDev.Pi |
Zloy_Gelud > 11-08-2014 09:59:04 |
Может так: Выделить код Код:// ==UserScript== // @name Виза // @namespace Виза // @description Виза // @include https://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=8&IDPlacowki=93 // @version 1 // @grant none // @run-at document-end // ==/UserScript== document.getElementById('cp_tabFormularz').style.visibility = 'visible !important'; |
kobrin13 > 11-08-2014 10:02:47 |
Zloy_Gelud |
Zloy_Gelud > 11-08-2014 10:05:14 |
kobrin13 пишет
А стиль поменялся после загрузки страницы или нет? |
kobrin13 > 11-08-2014 10:21:40 |
Zloy_Gelud |
Zloy_Gelud > 11-08-2014 10:30:28 |
kobrin13 пишет
Ну тогда мне кажется необходимо лично смотреть на страницу. Но на нее не пускает. |
iDev.Pi > 11-08-2014 11:14:08 |
Zloy_Gelud |
Zloy_Gelud > 11-08-2014 11:25:50 |
iDev.Pi пишет
А я откуда знаю. Я ж не спец. Если знаете как - посоветуйте человеку. UPD. Вы про Stylish говорили? Выделить код Код:@namespace url(http://www.w3.org/1999/xhtml); @-moz-document url("https://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=8&IDPlacowki=93") { #cp_tabFormularz{visibility:visible!important;} /*#cp_tabFormularz{visibility:hidden!important;}*/ } |
iDev.Pi > 11-08-2014 13:34:56 |
Zloy_Gelud |
kobrin13 > 11-08-2014 15:47:56 |
iDev.Pi 11-08-2014 16:10:01 |
kobrin13 > 11-08-2014 17:54:46 |
помогло вот так но работает только через F12 - консоль |
Kamui > 11-08-2014 20:16:21 |
kobrin13 |
kobrin13 > 11-08-2014 20:31:16 |
Kamui |
Xant1k > 15-08-2014 17:48:29 |
del |
CoolCmd > 16-08-2014 18:33:28 |
Xant1k |
Pony_Smile_Pack > 29-08-2014 16:37:55 |
GoogleMonkeyR опять побился, криво отражает результаты. Есть ли решение? |
Sagen > 29-08-2014 17:05:18 |
Pony_Smile_Pack > 29-08-2014 17:12:53 |
Sagen пишет Да, я читаю это. Там зазор остаётся у меня. Между результатами и поисковой строкой. Да, работает. То что на pastebin он там выложил. |
Inko7 > 05-09-2014 12:20:46 |
Разъясните такую ситуацию: |
voqabuhe > 05-09-2014 12:32:41 |
Inko7 |
Inko7 > 05-09-2014 12:36:46 |
voqabuhe |
CoolCmd > 05-09-2014 13:00:45 |
Inko7 пишет
нет |
voqabuhe > 05-09-2014 13:52:24 |
Inko7 пишет
А если просто отключить все скрипты которые работают с yaplakal? Если поможет, то тогда методом исключения выявить виновника. |
Inko7 > 05-09-2014 14:40:53 |
voqabuhe пишет
отключал все у которых в инклудах было разрешение для всех сайтов - те же тормоза... |
voqabuhe > 05-09-2014 14:51:11 |
Inko7 05-09-2014 14:53:10 |
Inko7 > 05-09-2014 15:01:03 |
voqabuhe |
voqabuhe > 05-09-2014 15:18:43 |
Inko7 |
Inko7 > 05-09-2014 16:19:19 |
voqabuhe |
Pony_Smile_Pack > 07-09-2014 02:41:41 |
Greasemonkey 2.2 создаёт файлы базы данных теперь, это нормально? странно просто, 64 МБ целых |
FMRUser > 07-09-2014 05:17:25 |
Pony_Smile_Pack ЗЫ: Обычно не пользуюсь такими, если бы не вы, так бы и не узнал про этот "мусор" ещё долгое время. Пожалуй добавлю ещё себе и в CCleaner: скрытый текст [Greasemonkey (Базы Данных Скриптов)] Section=Расширения: Firefox Default=False FileKey1=%AppData%\Mozilla\Firefox\Profiles\*\gm_scripts\|*.db FileKey2=%AppData%\Mozilla\Firefox\Profiles\*\gm_scripts\|*.db-shm FileKey3=%AppData%\Mozilla\Firefox\Profiles\*\gm_scripts\|*.db-wal |
спокойный > 14-09-2014 15:19:06 |
здравствуйте, мне нужен совет, может кто поможет я хочу вернуть странице поста livejournal (той которая дефолтная для S1 стиля и которую можно увидеть в любом стиле по format=light) её старый вид. поясню что я имею в виду. сейчас страница выглядит так как можно заметить, справа много пустого места которое плохо смотрится и которое хочется использовать. а раньше страница выглядела так как видно, в этом варианте строка занимает всю или почти всю ширину страницы. сейчас я эту ширину меняю с помощью вот этого костыля - выставив там ширину в 115em. но при изменении размера окна появляется горизонтальная прокрутка, а при выставлении значения 100% ширина просто сбрасывается на дефолтную (узкую). для меня css и javascript это китайская грамота, но может кто из знающих подскажет, как сделать так чтобы текст растягивался на всю ширину окна, какого бы размера ни было окно? |
CoolCmd > 15-09-2014 10:55:48 |
спокойный я думаю, можно в userContent.css запихнуть и обойтись без скрипта. |
спокойный > 15-09-2014 18:17:19 |
CoolCmd пишет
а куда этот файл положить (или где его найти)? в папку профиля которая в %userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\ или в c:\Program Files (x86)\mozilla firefox\ потому что ни там ни там такого файла я не нашёл. |
спокойный > 15-09-2014 22:41:09 |
okkamas_knife, CoolCmd |
DEMYJAN > 27-09-2014 09:22:34 |
подскажите пожалуйста какой скрипт нужен для возможности сохранения фото с 500px |
voqabuhe > 27-09-2014 14:36:35 |
Подскажите, как вкл/откл Панель меню? Пробовал так Выделить код Код:var bar = document.getElementById("main-menubar"); setToolbarVisibility(bar, bar.collapsed); Выделить код Код:var bar = document.getElementById("menubar-items"); setToolbarVisibility(bar, bar.collapsed); но отключается только Главное меню, а сама панель вместе с расположенными на ней кнопками остаётся. Выделить код Код:var bar = document.getElementById("toolbar-menubar"); setToolbarVisibility(bar, bar.collapsed); то только отключает панель, но не включает. |
Xant1k > 09-11-2014 12:09:51 |
del |
CoolCmd > 09-11-2014 17:11:55 |
Xant1k на PS посмотрел историю изменений. поржал. |
Mishania > 09-11-2014 19:21:49 |
Совершенно не работают в 33 TvFedor RuTracker и Torrents Re-Downloader. Может есть возможность починить хотя-бы один из них. |
Xant1k > 09-11-2014 19:52:01 |
del |
vitalii201 > 09-11-2014 20:31:13 |
Mishania, оба работают. |
Mishania > 09-11-2014 22:42:25 |
vitalii201 |
vitalii201 > 09-11-2014 22:45:54 |
Mishania, кстати - спасибо, я себе "Фёдора" оставил. |
Mishania > 09-11-2014 23:01:52 |
vitalii201 |
vitalii201 > 09-11-2014 23:15:44 |
Mishania, скрытый текст |
Mishania > 09-11-2014 23:27:12 |
vitalii201 |
Kamui > 14-11-2014 08:43:43 |
Есть скрипт который конвертирует валюту и другие величины, выводит он данные в таблице с определенным стилем, но на разных сайтах эта таблица выглядит по-разному и иногда ее сильно корёжит. Можно ли как-то изменить код, чтобы например выводилась не таблица а div элемент с уникальным id? Выделить код Код:// ==UserScript== // @name Universal converter // @namespace igcc // @include * // @description Конвертация различных величин // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // ==/UserScript== (function (){ var log = function() { if (unsafeWindow.console) unsafeWindow.console.log.apply(unsafeWindow.console, arguments); }; var tabla=''; var pos = [0,0]; var setPos = function (d){ d.style.top = pos[0] - 25 + 'px'; d.style.left = pos[1] - 170 + 'px'; } var showMe = function (d) { if(d.length < 1) { return; } setPos(d); d.style.display = "block"; } var hideMe = function (d) { if(d.length < 1) { return; } d.style.display = "none"; }; var currencys = { 'USD':'Доллар США', 'RUB':'Российский рубль', 'CNY':'Китайский юань', 'EUR':'Евро', 'UAH':'Украинская гривна', 'GBP':'Британский фунт', 'JPY':'Японская йена', 'AUD':'Австралийский доллар', 'CAD':'Канадский доллар', 'HKD':'Гонконгский доллар', '':'', 'cm':'Сантиметр', 'inch':'Дюйм' } var urlConvert = function (){ var price = $('price-igcc').value; var currencyFrom = $('currencyFrom').value; var currencyTo = $('currencyTo').value; GM_setValue('from',currencyFrom); GM_setValue('to',currencyTo); return 'https://www.google.ru/search?&q=' + price + '+' + currencyFrom + '+in+' + currencyTo }; var $ = function(id) { return document.getElementById(id); }; var showMenu = function (){ showMe($('tabla-igcc')); convertir(); }; var setTabla = function (){ var filas = [] for(var currency in currencys){ filas.push('<option value="' + currency + '">' + currencys[currency] + '</option>'); } tabla += '<input type="hidden" id="price-igcc" value="0">'; tabla += '<table border="0" style="line-height:normal;color:yellow;font-weight:bold;text-align:center;">'; tabla += ' <tr>'; tabla += ' <td colspan="3"><p id="res-igcc" style="color:yellow;"></p></td>'; tabla += ' </tr>'; tabla += ' <tr>'; tabla += ' <td style="border:0px;padding:0px;color:white;"><b><label for="currencyFrom">Из:</label></b></td>'; tabla += ' <td style="border:0px;padding:0px;color:#fff;"><select id="currencyFrom">' + filas.join('') + '</select></td>'; tabla += ' <td style="border:0px;padding:0px;color:#fff;" rowspan="2">'; tabla += ' <img id="swc-curr-igcc" alt="switch" src="data:image/gif;base64,R0lGODlhEgASAKUfACkyVuLk5ZOi5WiEx0li1AAAzD1Y0fr8+LzC4YCYz8bL4u7t8LS71Gd81n+Q2s/W8/H1+LXA7ubn8Orv+VNr1neK3d7h8cDK8YmY3NbZ3vj4+NPX5lVy1uvv+c7T3v///56s6G2C3ZGf27zE6vL1/Obq+drg9kJazuDj8YSU33qM3////////////////////////////////////////////////////////////////////////////////////yH5BAEHAD8ALAAAAAASABIAAAZswN9vQCwajcLhZ8lsNgdKp/Q5aD5AIYNpSmymDGBBSdr1GgjgFIkqTV1KKgNlvCxPPxFDiGm/Cwx8VXdLf4GDB3l7dYJeIxYVchaGTQ5nYA4SbEyVYBgbZIwfCCINBgpcoYN8Uap1SUewRUJBADs=" />'; tabla += ' </td>'; tabla += ' </tr>'; tabla += ' <tr>'; tabla += ' <td style="border:0px;padding:0px;color:white;"><b><label for="currencyTo">В:</label></b></td>'; tabla += ' <td style="border:0px;padding:0px;color:#fff;"><select id="currencyTo">' + filas.join('') + '</select></td>'; tabla += ' </tr>'; tabla += ' <tr>'; tabla += ' <td style="border:0px;padding:0px;color:#fff;" colspan="3"><center><button id="ver-res-igcc">Посчитать</button></center></td>'; tabla += ' </tr>'; tabla += '</table>'; var divTabla = document.createElement('div'); divTabla.id = "tabla-igcc"; divTabla.style.position = "absolute"; divTabla.style.display = "none"; divTabla.style.background = "#333"; divTabla.style.border = "0px"; divTabla.style.padding = "5px"; divTabla.innerHTML = tabla; try { document.body.appendChild(divTabla); } catch(e){ } }; var convertir = function (){ var url = urlConvert(); GM_xmlhttpRequest({ method: 'GET', url: url, onload: function(r) { var json = r.responseText; var doc = document.implementation.createHTMLDocument(""); doc.documentElement.innerHTML = json; json = doc.querySelectorAll('.ct-cs > div'); $('res-igcc').innerHTML = json[0].textContent + json[1].textContent; $('currencyFrom').value = GM_getValue('from'); $('currencyTo').value = GM_getValue('to'); } }); } function init(){ try { if(window != window.top){ return; } setTabla(); $('currencyFrom').value = GM_getValue('from'); $('currencyTo').value = GM_getValue('to'); $('ver-res-igcc').addEventListener('mousedown',function (e){ if (e.stopPropagation){ e.stopPropagation(); } e.cancelBubble = true; convertir(); },true); $('swc-curr-igcc').addEventListener('mousedown',function (e){ var currencyFrom = $('currencyFrom').value; var currencyTo = $('currencyTo').value; GM_setValue('from',currencyTo); GM_setValue('to',currencyFrom); $('currencyFrom').value = GM_getValue('from'); $('currencyTo').value = GM_getValue('to'); convertir(); },true); window.addEventListener("mousemove", function(e){ e = e || window.event; pos = [e.pageY,e.pageX] },false); window.addEventListener("mousedown", function(e){ e = e || window.event; var reltg = e.target while (reltg.id != 'tabla-igcc' && reltg.nodeName != 'HTML' && reltg.nodeName != 'BODY'){ reltg= reltg.parentNode } if(reltg.id !== 'tabla-igcc'){ hideMe($('tabla-igcc')); } },true); window.addEventListener("click",function (e){ e = e || window.event; if ( e.altKey && e.button == 0 && e.detail == 2 ) { var price = parseFloat(window.getSelection().toString().replace(/[^0-9\.\,]+/,'').replace(/[\,]+/,'.')); if(!isNaN(price)){ $('price-igcc').value = price showMenu() } } },false); window.addEventListener("contextmenu",function(e) { e = e || window.event; if(e.shiftKey) { var price = parseFloat(window.getSelection().toString().replace(/[^0-9\.\,]+/,'').replace(/[\,]+/,'.')); if(!isNaN(price)){ $('price-igcc').value = price showMenu() } e.preventDefault(); e.returnValue = false; e.stopPropagation(); return false; } },false); } catch(e){ } } init(); })() |
Xant1k > 21-11-2014 05:24:20 |
del |
manuk > 21-11-2014 14:53:10 |
На некоторых сайтах, если окно неактивно останавливается таймер. Можно это изменить, или принципиально невозможно? |
manuk > 22-11-2014 13:54:17 |
okkamas_knife, я немного другое хотел. Что-то вроде подмены фокуса. Т.е. вкладка, которая неактивна, считалась в фокусе (активной). |
CoolCmd > 23-11-2014 11:31:26 |
manuk это уже наверняка сделали. чеши на greasyfork.org и ищи свой обменник. |
Pony_Smile_Pack > 23-11-2014 11:56:18 |
manuk пишет
Вряд ли такое возможно. Там даже над активной вкладкой папку нельзя открыть. |
manuk > 23-11-2014 12:03:32 |
Да, фокус переходит на другое окно и таймер останавливается.
Жаль. |
Nomak > 08-12-2014 14:32:53 |
Доброго времени суток! Выделить код Код:// ==UserScript== // @name Replace 5 to 0 // @grant GM_getValue // @grant GM_setValue // @namespace 1 // @description 1 // @version 1 // ==/UserScript== GM_setValue(`count`,0) console.log (`count= `+GM_getValue(`count`)); Код страницы Выделить код Код:<script> document.onkeydown = function (e) { if(e.which == 27){ return false; } } /*ESC KEY DISABLED*/ var controle=0; setTimeout(function(){callTimer();}, 5000); /*Start in 5 seconds if frame not load*/ function callTimer(){ if(controle==0){ loadTimer(); controle=1; } } function loadTimer(){ /*START TIMER*/ var count=5; var size_div=120/count; var running_bar=size_div; document.getElementById("m_wait").style.display="none"; document.getElementById("m_counter").style.display=""; var counter=setInterval(timer, 1000); function timer() { if (document.hasFocus){ /*browser support function hasFocus*/ if (document.hasFocus ()) { /*Protection Focus*/ document.getElementById("focus-msg").style.display='none'; count=count-1; document.getElementById("m_timer").style.width=running_bar+"px"; running_bar = running_bar + size_div; }else{ //document.getElementById("focus-msg").style.display=''; count=count; } }else{ /*browser not support function hasFocus, so liberate*/ count=count-1; document.getElementById("m_timer").style.width=running_bar+"px"; running_bar = running_bar + size_div; } if (count <= 0) { clearInterval(counter); document.getElementById("m_timer").style.width="120px"; document.getElementById("m_counter").style.display="none"; var iframe = document.createElement('iframe'); iframe.setAttribute("src", "/view-check.php?hashurl=MzM4&s=a773f5646e0c316b4200"); iframe.frameBorder=0; iframe.scrolling="no"; iframe.width="500px"; iframe.height="50px"; document.getElementById("m_iframe").appendChild(iframe); return; } } } </script> |
leex > 13-01-2015 05:03:22 |
Всем доброго времени! |
turbot > 14-02-2015 00:01:49 |
Может кто-нибудь поправит этот скрипт: скрытый текст Выделить код Код:// ==UserScript== // @name URL Shortener Unshortener // @namespace Smiths // @description Adds small button next to shortened URLs (t.co/bit.ly/goo.gl) on Twitter and other sites that will replace the shortened URLs with their real locations and vice-versa. Useful for when you don't want to blindly click links. // @include * // @version 1.0.5 // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_registerMenuCommand // @attribution changes [d:03.05.14][u:<ul><li>Fix for oversized buttons; needed to specify size. Oops./li></ul>] // ==/UserScript== var b1 = "data:image/gif;base64,R0lGODlhCAAIANUAAAAAAP///xa9JhKcHxKaHw56GQ1wFwxnFR3zMRzoLxrbLBnSKhjMKRa5JRWuIxKXHg9/Gh/9NCP9OCX9OS79QTH9RDv9TT79UEr9Ww4sERQ+GBI4FhlNHhtSIBZDGlf+Z13+bGH+cGn+dy1iMnn+hXv+h37+iob+kU97U1N+V3mbfIKihYOihgsjDQ0oDxI2FQwkDg8sET1uQW2ScHCUc////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAIAAgAAAY3wFptpZqhhDXWqRS6jGo0E0mEoUQ4KdDHMkkwNLKKBKFwDF4dxUJAgBgyNU/jUTi0kJuYCyYMAgA7"; var b2 = "data:image/gif;base64,R0lGODlhCAAIANUAAAAAAP///703FpwuEpotEnokDnAhDWceDPNHHehEHNtAGtI+Gcw8GLk2Fq4zFZcsEn8lD/1LH/1OI/1QJf1XLv1ZMf1hO/1kPv1tSiMQCywUDj4cFDgaEk0jGVImG0MfFjYZEiQRDP54V/58Xf6AYf6GaWI3Lf6Tef6Ve/6Xfv6ehn5cU5J0bZR3cJuAeaKJgygSDSwUD25GPXtXT6KIgv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADUALAAAAAAIAAgAAAY3wFotBItxhLXMofBofGoaA4QgWCg8oIFDgZBUZBtGYmIRjVadCAVTOqVaNdOFhFK9kDOWiyYMAgA7"; var b3 = "data:image/gif;base64,R0lGODlhCAAIAPYEAKKUh5uLfZKAcXtlUv7Ejf67gf6xaP2dRGJIMJSDdP6/hP66f/61cP2kUf2WNf2OJk0zG35pVv6uZP6rXv2cQf2RLOiCI8xyHj4pFm5VQP2XOP2QKvOII9t6IK5fGpxXFjYjE1I2HdJ1Hr1pG5pWFn9HEnA+ECwdD0MsGLlnG5dSFnpEEWc6DyMXDDglFCwdECgaDiQYDaGifJubc5KSZ3t7SqGiffz+ff7+cfv+V/r9NGFiKZSUavz+dP7+b/v+X/r9QPn9JPn9FUxNFn1+Tvv+U/v+Tfr9Mfn9G+ToE8nMED0+Em5uOfn9J/n9Ge/zE9jbEa6uDpqcDDY2EFJSGM/SELq9D5iaDH1/Cm5wCSssDENDE7a5D5eXDHh6CWVnCCMjCjc4ECwrDSgoCyQkCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgBlACwAAAAACAAIAAAHPIBlZQAAAgOCgwQKBg2HAAQEDA0aFQgRBhIHFRYXLhkaGxwdHiQgIR0iKSQlJi9lCB4qKywtiC4vL2KCgQAh+QQFCgBlACwAAAAACAAIAAAHO4BlZTY2NDWCgzc9OUCHNjc3P0BNSDtEOUU6SElKYUyUT1BRV1NUUFVWV1hZWmVUXF1eX2SIU2JkU4KBADs="; function getRealURL(urlID) { var theURL,link; link = document.querySelector('a[slID="'+urlID+'"]'); theURL = link.getAttribute('data-full-url'); var plusBox = document.getElementById('bsl'+urlID.substr(2)); plusBox.innerHTML = '<img title="Click to fetch full URL" style="width:8px;height:8px;padding:2px;border:none" src="'+b3+'" alt="[+]">'; GM_xmlhttpRequest({ method:"HEAD", url:theURL, headers:{ "User-Agent":"monkeyagent", "Accept":"text/monkey,text/xml" }, onload:function(content){ var minusBox = document.createElement('a'); link.setAttribute('smgm_origURL',link.innerHTML); link.setAttribute('smgm_origfURL',theURL); var newLink = link.cloneNode(true); newLink.href = content.finalUrl; newLink.innerHTML = content.finalUrl; link.parentNode.replaceChild(newLink,link); minusBox.innerHTML = '<img title="Click to collapse back to shortened URL" style="width:8px;height:8px;padding:2px;border:none" src="'+b2+'" alt="[-]">'; minusBox.href="javascript:void(0);"; minusBox.id = 'bsl'+urlID.substr(2); minusBox.addEventListener("click",function(){ this.innerHTML = '<img title="Click to fetch full URL" style="width:8px;height:8px;padding:2px;border:none" src="'+b1+'" alt="[+]">'; var aLink = document.querySelector('a[slID="'+this.id.substr(1)+'"]'); aLink.setAttribute('data-full-url',aLink.getAttribute('smgm_origfURL')); aLink.innerHTML=aLink.getAttribute('smgm_origURL'); aLink.href=aLink.getAttribute('smgm_origfURL'); aLink.target="_blank"; this.addEventListener("click",function(){getRealURL(this.id.substr(1));},false); },false); plusBox.parentNode.replaceChild(minusBox,plusBox); } }) } function unescapeHTML(s){return s.replace('&', '&').replace('<',"<").replace('>','>').replace('"','1"').replace(''','\'');} var lc = 0; document.addEventListener('DOMNodeInserted',function(e){ window.setTimeout(function(){ var newLinks = document.querySelectorAll('a[href*="po.st/"],a[href*="img.ly/"],a[href*="bit.ly/"],a[href*="goo.gl/"],a[href*="t.co/"],a[href*="db.tt/"],a[class*="extLink"],a[class*="url-ext"],a[class*="twitter-timeline-link"]'); if (newLinks.length > 0) { for (var i = 0; i < newLinks.length; i++) { if (newLinks[i].className.match(/\bsmgm_usTitle\b/) == null && newLinks[i].innerHTML.indexOf('<img') < 0) { lc++; var plusBox = document.createElement('a'); newLinks[i].setAttribute('slID','sl'+lc); if (newLinks[i].getAttribute('data-full-url') == null) newLinks[i].setAttribute('data-full-url',newLinks[i].href); plusBox.innerHTML = '<img title="Click to fetch full URL" style="width:8px;height:8px;padding:2px;border:none" src="'+b1+'" alt="[+]">'; plusBox.href="javascript:void(0);"; plusBox.id = "bsl" + lc; plusBox.addEventListener("click",function(){getRealURL(this.id.substr(1));},false); newLinks[i].parentNode.insertBefore(plusBox,newLinks[i].nextSibling); (newLinks[i].className == "") ? newLinks[i].className = "smgm_usTitle" : newLinks[i].className = newLinks[i].className + " smgm_usTitle"; } } } }, 200);} , false); (с ~37 ночнушки ругается на: "Use of Mutation Events is deprecated. Use MutationObserver instead" и отказывается работать) Или посоветуйте какой-нибудь другой "раскукоживатель" коротких ссылок. Спасибо. |
AlAvis > 14-02-2015 01:36:30 |
turbot пишет
Действующая версия только до FF35 , или ждать следующую , или ставить gm-nightly https://arantius.com/misc/gm-nightly |
turbot > 14-02-2015 02:35:15 |
Проблема не в гризманки (он у меня работает без проблем), а в:
Видимо в ночнушках уже выпилили поддержку. |
Dumby > 14-02-2015 11:46:37 |
turbot пишет
38.0a1 (2015-02-13). Поддержка есть. Как проверил: скрытый текст extensions.greasemonkey.fileIsGreaseable > true Создал и открыл html файл. Появился зелёный кружок. скрытый текст Выделить код Код:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test</title> </head> <body> <center></center> <script> setTimeout(function() { var a = document.createElement("a"); a.href = "http://goo.gl/bla"; a.textContent = "Short Link"; document.body.firstElementChild.appendChild(a); }, 500); </script> </body> </html> |
turbot > 14-02-2015 13:53:27 |
Dumby |
na_voine > 02-03-2015 07:59:48 |
ко всем. |
Бумбик > 02-03-2015 14:45:49 |
na_voine пишет
javascript:document.getElementsByTagName('html')[0].contentEditable=true; |
Mishania > 14-03-2015 09:33:36 |
Сегодня после обновления до 3.0 заметил что стал потреблять оперативки примерно в 2 раза больше. Никто такое не наблюдает? |
turbot > 14-03-2015 16:08:05 |
na_voine пишет
Есть готовый скрипт, от Lain_13. |
mmmaks2004 > 24-03-2015 14:34:11 |
Подскажите, как достучаться к переменной seconds на странице, которая запускается во фрейме? <iframe src="/a.htm" style="width:100%; height:500px;" scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></iframe> unsafeWindow.seconds пишет что переменная не определена. Переменная определяется так: Выделить код Код:<script language="javascript"> document.getElementById('value').focus(); var seconds = 30; function display_countdown() { if( seconds < 0 ) { seconds = 0; } document.getElementById('countdown').innerHTML = 'Countdown: <strong>' + seconds + '</strong>'; seconds--; setTimeout( "display_countdown()", 1000 ); } display_countdown(); |
villa7 > 06-04-2015 17:49:32 |
Как убрать таймер ожидания установки скрипта? |
turbot > 06-04-2015 22:23:48 |
extensions.greasemonkey.installDelay |
villa7 > 06-04-2015 23:04:46 |
turbot |
Vladik > 14-04-2015 18:31:38 |
А где можно скачать 3,1 финал? На АМО - нету. |
voqabuhe > 14-04-2015 19:06:26 |
Vladik пишет
Как нет, а это что? |
Elcosto > 20-04-2015 13:19:06 |
Помогите пожалуйста со скриптом, скрытый текст Есть такая строчка, <span id="commentsSort_2" class="groupHeadingText commentSortOptions commentSortOptionsActive" href="#">Новые</span> Нужно, чтобы "Новые" - менялись на "Старые" и id="commentsSort_2" на id="commentsSort_3" Заранее спасибо. |
Vulpes > 21-04-2015 12:01:05 |
Приветствую. скрытый текст Выделить код Код:}("<div class=\"head-stripe i-bem\" data-bem=\"{"head-stripe":{"is_geo_stripe":false,"text2_url":"https://yabs.yandex.ru/count/IRZN8L-XAwG400G0gQ10022EjdxYKWLIbGkR0M-CYBRH0mi7feK9YhaTS002gWsbfkow0Oq1aA0V0jwHjMfiFmoJXGr2em6kz02QhrE8lnC5iG6oa00CljRH0mjN0M2_r4pn2dS0OC7__________m_2ydSCif62wx8FnOyFUWu0","background_color_file2":"","background_image":"https://yabs.yandex.ru/resource/DF8uxlQ5fzkVo8a3uCoMA8_banana_20141031_cez_str_but_3_instal.png","void_url":"https://yabs.yandex.ru/count/IRZN8GKXGXu400G0gQ10022EjdxYKWLIbGkR0M-CYBRH0mi7feK9YhaTS002gXAbfkow0Oq1aA0V0jwHjMfiFmoJXGr2em6kz02QhrE8lnC5iG6oa00CljRH0mjN0M2_r4pn2dS0OC7__________m_2ydSCif62wx8FnOyFUWu0","void_target":"_blank","close_counter":"https://yabs.yandex.ru/count/IRZN8Qab1kC400G0gQ10022EjdxYKWLIbGkR0M-CYBRH0mi7feK9YhaTS002gX-bfkow0Oq1aA0V0jwHjMfiFmoJXGr2em6kz02QhrE8lnC5iG6oa00CljRH0mjN0M2_r4pn2dS0OC7__________m_2ydSCif62wx8FnOyFUWu0","type":"shift","height":"30"}}\"><div class=\"head-stripe__elements\"><img class=\"head-stripe__image\" src=\"https://yabs.yandex.ru/resource/DF8uxlQ5fzkVo8a3uCoMA8_banana_20141031_cez_str_but_3_instal.png\"/></div><div class=\"head-stripe__table\"><div class=\"head-stripe__col head-stripe__col_age_restriction\"><div class=\"head-stripe__age\">0+</div></div><div class=\"head-stripe__col head-stripe__col_text_1\"><a class=\"link link link_counter_yes head-stripe__text1\" target=\"_blank\" href=\"https://yabs.yandex.ru/count/IRZN8TGarfW400G0gQ10022EjdxYKWLIbGkR0M-CYBRH0mi7feK9YhaTS002gWQbfkow0Oq1aA0V0jwHjMfiFmoJXGr2em6kz02QhrE8lnC5iG6oa00CljRH0mjN0M2_r4pn2dS0OC7__________m_2ydSCif62wx8FnOyFUWu0\" onmousedown=\"w(this, '707.1432.232');\">Яндекс.Браузер с режимом Турбо — быстрая загрузка даже при медленном интернете</a></div><div class=\"head-stripe__col head-stripe__col_text_2\"><a class=\"link link link_counter_yes head-stripe__text2\" target=\"_blank\" href=\"https://yabs.yandex.ru/count/IRZN8L-XAwG400G0gQ10022EjdxYKWLIbGkR0M-CYBRH0mi7feK9YhaTS002gWsbfkow0Oq1aA0V0jwHjMfiFmoJXGr2em6kz02QhrE8lnC5iG6oa00CljRH0mjN0M2_r4pn2dS0OC7__________m_2ydSCif62wx8FnOyFUWu0\" onmousedown=\"w(this, '707.1432.494');\">Установить</a></div><div class=\"head-stripe__col head-stripe__col_close_yes\"> <span class=\"link link link_counter_yes head-stripe__close\" role=\"button\" tabindex=\"0\" onmousedown=\"w(this, '707.1432.486');\"><span class=\"head-stripe__x\">×</span></span></div></div></div>");</script><div class="no-connection i-bem" data-bem="{"no-connection":{}}"><div class="no-connection__wrapper"><div class="no-connection__message"></div><button class="button button_size_m button_theme_normal no-connection__reload i-bem" data-bem="{"button":{}}" role="button" type="button" onmousedown="w(this, '143.1395');"><span class="button__text">Попробовать еще раз</span></button></div></div></div><div class="paranja paranja_state_close paranja_theme_normal z-index-group i-bem" data-bem="{"paranja":{"rel":[{"elem":".header__action_type_srv","event":"pressed","method":"open"},{"elem":".header__action_type_srv","event":"released","method":"close"}]}}"></div><div class="footer clearfix" role="contentinfo"><div class="footer__column footer__column_side_right"><a class="link link link_counter_yes footer__link" href="//yandex.ru/search/customize?retpath=http%3A%2F%2Fyandex.ru%2Fsearch%2F%3Flr%3D213%26text%3D%25D0%25B0" onmousedown="w(this, '295.1137');">Настройки</a><a class="link link_visibility_hidden link link_counter_yes footer__link" target="_blank" href="//mobile.yandex.ru" onmousedown="w(this, '295.1006');">Приложения</a><a class="link link link_counter_yes footer__link" target="_blank" href="//feedback2.yandex.ru/newserp/" onmousedown="w(this, '295.296');">Обратная связь</a><a class="link link link_counter_yes footer__link" target="_blank" href="//help.yandex.ru/search/" onmousedown="w(this, '295.177');">Помощь</a><a class="link link link_counter_yes footer__link" target="_blank" href="http://advertising.yandex.ru/kupislova.xml?advertising" onmousedown="w(this, '295.1');">Реклама</a><a class="link link link_counter_yes footer__link" target="_blank" href="//stat.yandex.ru/stats.xml?ReportID=-225&ProjectID=1" onmousedown="w(this, '295.989');">Статистика</a><a class="link link link_counter_yes footer__link" target="_blank" href="//company.yandex.ru/legal/termsofuse/" onmousedown="w(this, '295.990');">Лицензия на поиск</a><a class="link link link_counter_yes footer__link" target="_blank" href="//company.yandex.ru/" onmousedown="w(this, '295.280');">О компании</a><div class="copyright">© 1997–2015 <span class="copyright__name">ООО «Яндекс»</span></div></div></div><div class="serp serp__spin i-bem" data-bem="{"serp":{"uniqId":"search","connectionError":{"message":"Проверьте соединение с интернетом"},"resultError":{"message":"Не удалось получить результаты"}}}"></div><script>w(this, '471.143.842', null, "//yandex.ru/clck/safeclick/data=AiuY0DBWFJ7IXge4WdYJQSaYtyyri96F9995cpcmF2sLPBI2lnr9NohD8yaoyE3izOvpdg58xIrdOs_O1GAF8FO5E7yLk8XW5X91oYA-7aWK8AUHslaADRCJThH7S9NHhaLFDNeDTPB8ge8FtENa809tw2NcSdQ3CzeyoOKYmUb2lBewj8UtvhF0G-AQMfL5/sign=c72b934aa5ba9f53e3c1fa41a023e48a/keyno=0", null, window.startPageLoad);</script><script src="//yastatic.net/jquery/1.8.3/jquery.min.js"></script><script src="//yastatic.net/web4/0x2a71b6b/pages-desktop/search/_search.ru.js"></script><script>var _borschik=function(){var t=this._borschik||function(i){return!(i in t||t[i]++)};return t}();_borschik("wVvHjvLR9J9kXauxJ1T-1nSyUMA")&&!function(t,i){var n=""; Извините, без переносов. |
Бумбик > 21-04-2015 14:30:14 |
стилем этим убирается |
Vulpes > 22-04-2015 02:08:48 |
Бумбик |
villa7 > 28-05-2015 08:53:50 |
Я что то пропустил? Не открывается Greasy Fork. Опять куда то скрипты переехали? |
turbot > 28-05-2015 14:40:23 |
villa7 |
villa7 > 28-05-2015 15:54:17 |
turbot |
Ultima2m > 16-06-2015 11:45:17 |
Как-то видел дополнение, которое очищает поля ввода и пр. прокруткой мышиного колеса. Но ставить дополнение ради такой мелочи неохота. Может кто скрипт присоветует? Или напишет... |
xrun1 > 16-06-2015 13:15:21 |
Ultima2m |
Ultima2m > 16-06-2015 15:02:47 |
Хрюн И еще вопрос. скрытый текст Выделить код Код:// ==UserScript== // @id Linkification // @name Linkification // @version 1.0 // @namespace http://userscripts.org/users/splurov/ // @author Splurov // @description Linking text // @run-at document-end // @include * // ==/UserScript== (function(){ // (c) http://data.iana.org/TLD/tlds-alpha-by-domain.txt var domains = ['ac', 'ad', 'ae', 'aero', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'arpa', 'as', 'asia', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'biz', 'bj', 'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cat', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'com', 'coop', 'cr', 'cu', 'cv', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'edu', 'ee', 'eg', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gov', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'info', 'int', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jobs', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mil', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'museum', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'name', 'nc', 'ne', 'net', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'org', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'pro', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'st', 'su', 'sv', 'sy', 'sz', 'tc', 'td', 'tel', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tp', 'tr', 'travel', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'uk', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt', 'yu', 'za', 'zm', 'zw']; // (c) http://yellow5.us/firefox/linkification/ var tagsForSkip = ['a', 'applet', 'area', 'embed', 'frame', 'frameset', 'head', 'iframe', 'img', 'map', 'meta', 'noscript', 'object', 'option', 'param', 'script', 'select', 'style', 'textarea', 'title']; var inArray = function(value, items) { for (var i = 0; items[i] && value != items[i]; i++); return value == items[i]; } var urlsRegExp = /(^|[\s()\[\]_:~+@*"'>])((?:https?|ftp|irc):\/\/)?([-a-z\d;:&=+$,%_.!~*'()]+@)?((?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:(www|irc|ftp)\.)?(?:(?:[a-z\d]|[a-z\d][a-z\d-]*[a-z\d])\.)+([a-z]{2,6}))(:\d+)?(\/(?:[-\w.!~*'()%:@&=+$,;\/]*[\w~*%@&=+$\/])?(?:\?(?:[-\w;\/?:@&=+$,.!~*'()%\[\]|]*[\w\/@&=+$~*%])?)?(?:#(?:[-\w;\/?:@&=+$,.!~*'()%]*[\w\/@&=+$~*%])?)?|\b)/i var linksCounter = 0; var current = document.body; while (current) { if (current.nodeName == '#text' && (match = current.nodeValue.match(urlsRegExp)) && inArray(match[6], domains)) { var url; if (match[3] && ! match[2] && ! match[5] && ! match[8] && (match[3].indexOf(':') == -1 || match[3].indexOf('mailto:') == 0)) { url = (match[3].indexOf('mailto:') == -1 ? 'mailto:' : '') + match[3] + match[4]; } else { url = (match[2] ? match[2] : (! match[5] || match[5] == 'www' ? 'http' : match[5]) + '://') + (match[3] ? match[3] : '') + match[4] + (match[7] ? match[7] : '') + (match[8] ? match[8] : ''); } if (url) { var range = document.createRange(); range.setStart(current, match.index + match[1].length); range.setEnd(current, match.index + match[0].length); var a = document.createElement('a'); a.setAttribute('href', url); a.setAttribute('class', 'linkified'); a.appendChild(range.extractContents()); range.insertNode(a); range.detach(); linksCounter++; } } if (current.tagName && !inArray(current.tagName.toLowerCase(), tagsForSkip) && current.firstChild) { current = current.firstChild; } else if (current.nextSibling) { current = current.nextSibling; } else { do { current = current.parentNode; } while (!current.nextSibling && current.parentNode); current = current.nextSibling; } } if (linksCounter > 0) { var style = document.createElement('style'); style.type = 'text/css'; style.appendChild(document.createTextNode('a.linkified:before {content: "#"; color: #e00;}')); document.getElementsByTagName('head')[0].appendChild(style); } })(); У всех есть общая проблема: если в текст ссылки часть ссылки после него остается некликабельной. Можно как-то исправить или есть пофиксенный скрипт? |
Ultima2m > 30-08-2015 15:49:54 |
При установке скрипта появляется счетчик. |
FMRUser > 30-08-2015 15:54:01 |
Ultima2m |
CGGB > 11-09-2015 11:19:24 |
Подскажите, пожалуйста, решение. Есть, вот например, ссылка imgur.com/r/Cinemagraphs/Jxi6Fa1 . Там внутри на самом деле gif, но на уровне сайта там упаковывают толи в mp4, толи в какой-то gifv, плюс непонятно зачем там flash (flash block показывает, что заблокировал элемент). Как сделать, чтоб было по-человечески, просто gif файл в том блоке. Или на крайний случай что-то вроде редиректа с imgur.com/r/Cinemagraphs/Jxi6Fa1 на i.imgur.com/Jxi6Fa1.gif . Но желательно всё же вырезать все эти извращения по всему сайту. Подсобите скриптом или иным решением. |
Kamui > 11-09-2015 21:42:01 |
CGGB |
jars > 12-09-2015 00:51:50 |
CGGB Выделить код Код:SOURCE namespaceURI: XHTML margin: 0 border: 0 padding: 0 src = //i.imgur.com/Jxi6Fa1.webm type = video/webm |
Infocatcher > 13-09-2015 01:31:27 |
Kamui пишет
Вроде, подправил: если перейти на http://imgur.com/Jxi6Fa1?tags, там будет уже оригинальный .gif. |
vitalii201 > 13-09-2015 08:28:59 |
Только у меня?: "Greasemonkey 3.4 – новые скрипты не устанавливаются, старые - не редактируются. С 3.3 всё нормально". |
amid525 > 13-09-2015 09:35:02 |
Тоже были проблемы с разными скриптами на Greasemonkey. Заменил на Scriptish, и все ок! ) |
CGGB > 13-09-2015 14:48:04 |
Kamui, |
Доктор ТуамОсес > 02-11-2015 23:26:03 |
Уважаемые господа! |
CoolCmd > 03-11-2015 12:13:07 |
Доктор ТуамОсес пишет
можно. Доктор ТуамОсес пишет
нет, запрос будет. если запрос не нужен, нужно писать полноценное лисье расширение. |
Доктор ТуамОсес > 03-11-2015 19:13:23 |
CoolCmd пишет
Спасибо большое. Вы сэкономили мне УЙМУ времени, которое я бы убил пытаясь написать парсер (сохраняющий выбранные куски ВЕБ-страниц на диск) с помощью "Засаленной Обезьяны ("автомеханика")"). А в чем причина ограничений? ДА? 03-11-2015 19:14:51 CoolCmd пишет
Понял. Просто JS-ом здесь не обойтись. Спасибо. Буду гуглить разные фреймворки и надстройки. И прочие извраты "для программирования в брОузере" |
CoolCmd > 05-11-2015 13:17:51 |
Доктор ТуамОсес пишет
у GM есть GM_xmlhttpRequest, но он не дает доступа к file:///, не знаю почему, возможно по соображениям безопасности. Доктор ТуамОсес пишет
мутная тема... |
Доктор ТуамОсес > 05-11-2015 19:45:54 |
CoolCmd пишет
А что делать? |
xrun1 > 10-11-2015 14:05:25 |
Приветствую. |
Xant1k > 20-11-2015 09:11:27 |
del |
broker > 25-11-2015 00:30:59 |
Здравствуйте не работает GoogleMonkeyR поделитесь рабочим. |
PEAKTOP > 25-11-2015 16:16:32 |
broker, у меня он тоже работает через раз. Надо зайти в настройки поиска, после чего нажать кнопку "сохранить изменения", но так надо делать постоянно |
broker > 26-11-2015 03:52:52 |
PEAKTOP Не радует ситуация надеюсь скоро починять |
PEAKTOP > 26-11-2015 17:47:11 |
broker, попробуй эту версию. Вроде работает |
broker > 27-11-2015 18:09:06 |
PEAKTOP |
OmTatSat > 22-12-2015 11:27:53 |
Здравствуйте, подскажите что поправить, чтобы скрипт заработал в Greasemonkey Выделить код Код:// ==UserScript== // @name width // @include * // @version 1 // ==/UserScript== javascript:(function(){function%20t(f){a=d.createNodeIterator(d,1,f,false);while(a.nextNode()){}}var%20d=document;t(function(e){x=e.offsetLeft;l=e.offsetParent;while(l!=null){x+=l.offsetLeft;l=l.offsetParent}var%20w=d.documentElement.clientWidth-x;var%20s=e.style;if(s.marginLeft)w-=s.marginLeft;if(s.marginRight)w-=s.marginRight;if(s.paddingLeft)w-=s.paddingLeft;if(s.paddingRight)w-=s.paddingRight;if(s.borderSize)w-=s.borderSize;w-=d.defaultView.innerWidth-d.documentElement.offsetWidth;if(e.tagName=='IMG'){h=e.clientHeight*w/e.clientWidth;s.maxHeight=h}s.maxWidth=w+'px'})})(); //.user.js этот же скрипт с закладки нормально работает. |
Ultima2m > 22-12-2015 19:09:31 |
Привет всем. |
vitalii201 > 23-12-2015 10:42:26 |
Перестал работать addons.mozilla.org Language Redirect . Как исправить? |
Mishania > 10-01-2016 22:21:54 |
У меня вопрос касающийся больше расширения чем скриптов. Иногда приходится включать-выключать скрипты. Жму на обезьянку - появляется меню - отключаю скрипт - меню сворачивается. Опять жму на обезьянку - появляется меню - включаю другой скрипт - меню сворачивается. Как сделать что было так, нажал на обезьянку - появилось меню - отключил один скрипт - включил другой - нажал на обезьянку - меню закрылось. Может стиль какой, или кнопка для CB? |
PEAKTOP > 11-01-2016 01:46:34 |
Mishania, в меню есть пункт "Управление скриптами", включай/отключай сколько захочешь. |
Mishania > 11-01-2016 09:50:08 |
PEAKTOP |
Dumby > 11-01-2016 14:18:39 |
Mishania пишет
С мыши чтоб меню не закрывалось что ли скрытый текст Выделить код Код:((listener, popup = document.getElementById("greasemonkey-tbb").firstChild) => ["mousedown", "popuphiding"].forEach(type => addEventListener(type, listener, false, popup)) )({handleEvent(e) { if (e.type != "popuphiding") this.flag = e.target.script && !e.button; else if (this.flag) e.preventDefault(setTimeout(obj => obj.flag = false, 50, this)); }}); |
PEAKTOP > 11-01-2016 14:26:21 |
Mishania, всё правильно понял, но т.к. Jscript'ом не владею, то посоветовал этот способ. |
Mishania > 11-01-2016 14:55:52 |
Dumby |
robotest > 11-02-2016 18:29:03 |
Скажите пожалуйста как из меню "Экстра", удалить Greasemonkey? menu[label="Extras"] menuitem[label="Greasemonkey"] { |
NoName013 > 13-02-2016 13:48:51 |
Подскажите пожалуйста, есть ли возможность загрузить js скрипт на какой-то хостинг (например http://test.test/user.js), а в самом скрипте для Greasemonkey прописать ссылку на загруженный js и выполнять его? Как бы все тело скрипта должно находится на другом ресурсе. // ==UserScript== (function (window, undefined) { #include "http://test.test/user.js" })(window); А еще скажите... Мне надо сделать инжект в уже существующую функцию. Правильно ли использовать конструкцию window['main_fuction'] = main_fuction_custom; ? Может для этого есть другие методы? |
vv07 > 23-02-2016 16:27:01 |
Всех скриптописателей с праздником! Прошу помочь. Нашел скрипт для себя, но чутка треба поправить. Сам скрипт Universal_Links_Checker_v7.user для конвертации текстовых ссылок в кликабельные. Работает хорошо, но хотелось бы, что бы ссылки выделялись цветом, а то не всегда видишь их. К примеру желтый фон и фиолетовая ссылка. Помогите знатоки. |
udalov > 28-05-2016 21:36:48 |
Xant1k пишет
При наведении на ссылки курсором в левом нижнем углу браузера же показывается ссылка... |
yup > 28-05-2016 23:49:50 |
udalov пишет
Совсем не обязательно... Если на ссылку навешен обработчик мышиного события, то переход может быть совсем не туда, куда обещает строка статуса. Google вам в качестве примера: наведите мышь на любую ссылку в поисковой выдаче, а потом щёлкните по ссылке правой кнопкой и полюбуйтесь на чудо. |
voqabuhe > 29-05-2016 01:03:57 |
yup пишет
И что же такого чудесного в контекстном меню? |
yup > 29-05-2016 01:50:12 |
voqabuhe пишет
В меню - ничего. А в строке статуса? |
voqabuhe > 29-05-2016 01:59:26 |
yup пишет
И чё? Что показало, то и открылось. И причём тут ПКМ, зачем тогда меню открывали? |
yup > 29-05-2016 02:06:35 |
voqabuhe пишет
Вообще-то, если в браузер не добавлено какое-то антигугловское средство, то при наезде мышкой на ссылку в строке статуса показывается один URL, а после клацания - совсем другой. И браузер первым делом пойдёт на него, а вовсе не на первоначально показываемый. voqabuhe пишет
А выскакивание меню - так, побочный эффект |
voqabuhe > 29-05-2016 03:03:08 |
yup |
udalov > 29-05-2016 06:31:25 |
yup пишет
Сделал. Из всех ссылок с первой страницы выдачи прямая ссылка не показалась только в одном случае, со всеми остальными было всё нормально. Может, зависит от браузера и настроек? |
yup > 29-05-2016 09:42:04 |
udalov пишет
Скорее, от установленных скриптов/дополнений. Вон, у voqabuhe оказался Remove fake links, а подобных ему пару десятков понасоздано. Но речь же не о Googlе, это просто общедоступный пример того, что тексту URL в строке статуса нельзя доверять. Тот же Remove fake links - он ведь сугубо под Google и Яндекс заточен. |
udalov > 29-05-2016 17:07:02 |
Здравствуйте. |
yup > 29-05-2016 17:21:56 |
udalov |
Inko7 > 07-06-2016 19:41:52 |
подскажите строчку кода, которая бы при заходе на эту страницу нажимала на кнопку "войти в почту" |
turbot > 07-06-2016 20:07:36 |
Inko7 > 07-06-2016 20:38:46 |
turbot сделал так Выделить код Код:// ==UserScript== // @name rambler // @description Автологин // @include https://mail.rambler.ru/ // @include https://mail.rambler.ru/?login=&domain=@rambler.ru&password= // ==/UserScript== content.document.forms[0].submit(); чёт не жмется... |
turbot > 07-06-2016 20:47:19 |
Inko7 в метаданные. |
ifln > 15-06-2016 14:38:59 |
здесь у каждой новости справа внизу есть кнопочка "Открыть источник во фрефме" Или по другому: |
vet41 > 15-06-2016 15:58:29 |
Нужен небольшой скриптик для ютуба который дописывает к ссылкам вида https://www.youtube.com/channel/nazvaniekanala и https://www.youtube.com/user/nazvaniekanala приставку /videos чтобы получалось https://www.youtube.com/channel/nazvaniekanala/videos Гуглил много но рабочий вариант так и не нашел |
vitalii201 > 15-06-2016 16:15:10 |
vet41, среди всего остального на что способен YouTube + есть и "Страница канала по умолчанию Видео(или выбор из 6 пунктов)". |
vet41 > 15-06-2016 16:25:46 |
vitalii201 пишет
громоздкий он уж очень да и ютуб я в браузере не смотрю вообще |
Inko7 > 15-06-2016 20:52:39 |
turbot скрытый текст // ==UserScript== // @name Rambler Mail - AutoLogin // @description Автологин на стартовой странице // @include https://mail.rambler.ru/ // @include https://mail.rambler.ru/?login=* // @run-at document-idle // ==/UserScript== content.document.forms[0].submit(); в таком варианте постоянно обновляется (перегружается) страница что еще можно сделать? |
turbot > 15-06-2016 23:49:16 |
Inko7 Выделить код Код:// ==UserScript== // @name rambler // @description Автологин // @include https://mail.rambler.ru/ // @include https://mail.rambler.ru/?login=*&domain=%40rambler.ru&password=* // @grant none // ==/UserScript== window.addEventListener('load', function func() { window.removeEventListener('load', func); setTimeout(()=>{ content.document.forms[0].submit(); },300) }); |
Inko7 > 16-06-2016 08:59:17 |
turbot через DOM Inspector ? |
turbot > 17-06-2016 07:19:11 |
Inko7 |
selevo > 04-08-2016 12:24:04 |
спасите помогите две проблемы, психую третий день, может программизм не моё... FF 47 _________________________________________ 04-08-2016 12:26:05 FF 47 Страница: кликаю инспектировать элемент на поле ввода, затем правым кликом -> копировать xpath И консоль выдаёт что такого элемента нема: Выделить код Код:var xpath3='/html/body/div/div/div[1]/div/div[2]/form/div[3]/input'; var path_shtrih_Code = document.evaluate (xpath3, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); console.log("ШТРИХ:"+path_shtrih_Code.singleNodeValue); что за хрень ? |
turbot > 04-08-2016 13:59:59 |
selevo |
selevo > 04-08-2016 14:22:34 |
turbot пишет
А вообще подскажите как быстро "адрес" элементов находить чтоб жамкнуть по ним, заполнить, скопировать. |
turbot > 04-08-2016 14:27:50 |
selevo пишет
|
selevo > 04-08-2016 17:09:37 |
ну вот,а это долго минус в том что эти две строки обработки надо писать Выделить код Код:var PutKuzlu='/html/body/div/div/div[1]/div/div[2]/form/div[3]/input'; var uzel = document.evaluate (PutKuzlu, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); а затем уже например клик: |
selevo > 04-08-2016 19:49:56 |
почему текстовый редактор в грисмонкей отличается от того который в браузере ? |
selevo > 05-08-2016 07:39:26 |
Greasemonkey + atom или notepad++ |
Electrika > 03-09-2016 15:03:10 |
Уважаемые, не могли бы вы написать скрипт, который бы убирал пустое место от рекламы на сайте www.inoreader.com ? Попробовала три штуки отсюда, но они уже давно сделаны, а рекламный блок только в августе появился. |
xrun1 > 06-09-2016 19:52:56 |
Electrika Выделить код Код:@-moz-document domain("inoreader.com") { .reader_pane_sinner { right: -200px !important; } } Может, решение и корявое, но эффективное - у меня работает. |
bezuma > 06-09-2016 20:30:26 |
xrun1 Спасибо! Исчез треклятый блок. |
xrun1 > 06-09-2016 22:27:51 |
bezuma скрытый текст Мне кажется это не интерфейс, а серверы у Innologica тормозят. Ходите по http - это быстрее. А если пользуетесь кнопкой/дополнением Inoreader Companion, то снимите галочку в настройках. |
Electrika > 07-09-2016 11:15:06 |
xrun1, ура, ваш скрипт помог, спасибо! bezuma, у меня inoreader грузится без проблем. |
xrun1 > 11-10-2016 15:39:53 |
Раз уж я здесь начал оффтоп по Inoreader, здесь сам и закончу. Выделить код Код:@-moz-document domain("inoreader.com") { .reader_pane_sinner { padding-right: 0 !important; } } |
leshiy_odessa > 18-02-2017 20:04:31 |
Нужен скрипт автоматически разворачивающий спойлеры на livejournal.com. Не в комментариях. (!) |
yup > 18-02-2017 20:57:48 |
leshiy_odessa Выделить код Код:// ==UserScript== // @name LJ spoilers // @namespace spoilers // @include http://*.livejournal.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== var spoilers = document.getElementsByClassName('ljcut-link-expand'); for (var i = 0; i < spoilers.length; i++) spoilers[i].click(); |
leshiy_odessa > 19-02-2017 00:30:11 |
yup Спасибо за ответ. Но скрипт не работает. Он открывает последний по счету пост. Мне нужно открытие всех спойлеров на главной странице пользователя. Например тут — Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
mokujin > 19-02-2017 01:14:51 |
leshiy_odessa скрытый текст Выделить код Код:// ==UserScript== // @name LJ spoilers // @namespace spoilers // @include http://*.livejournal.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== for(var i=0;i<content.document.getElementsByClassName('ljcut-link-expand').length;i++) { content.document.getElementsByClassName('ljcut-link-expand')[i].click() } |
leshiy_odessa > 19-02-2017 01:39:21 |
mokujin Всё тоже самое, открывается последний пост на странице. |
mokujin > 19-02-2017 03:00:30 |
Если это положить в кнопку все открывает как нада. В Код. Из скрипта и у мя, тоже чёт не хочет. |
ifln > 19-02-2017 11:43:04 |
mokujin |
leshiy_odessa > 19-02-2017 13:15:07 |
ifln Ура!!! Огромное спасибо, работает отлично. скрытый текст Выделить код Код:// ==UserScript== // @name LJ spoilers // @namespace spoilers // @include http://*.livejournal.com/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== for(var i=0;i<content.document.getElementsByClassName('ljcut-link-expand').length;i++) { content.document.getElementsByClassName('ljcut-link-expand')[i].click() } update Проверил код от yup и он тоже работает. Теперь мой мозг перфекциониста, но не программиста должен выбрать какой оставить |
mokujin > 19-02-2017 17:37:07 |
leshiy_odessa |
Xant1k > 19-02-2017 22:02:49 |
del |
yup > 20-02-2017 00:51:34 |
Xant1k пишет
Скрипты такие есть, да и свой написать не сложно. Но я предпочитаю на портить необратимо страничку, а использовать дополнение Redirect Bypasser. |
vitalii201 > 20-02-2017 17:44:08 |
Попробовал сделать "автооткрывалку" спойлеров для Reddit-a Выделить код Код:// ==UserScript== // @name Reddit spoilers // @namespace spoilers // @include http*://*reddit.com/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== for(var i=0;i<content.document.getElementsByClassName('expando-button collapsed video').length;i++) { content.document.getElementsByClassName('expando-button collapsed video')[i].click() Но открываются не все спойлеры. Как исправить? |
mokujin > 20-02-2017 17:59:34 |
vitalii201 Выделить код Код:var spoilers = document.getElementsByClassName('expando-button'); for (var i = 0; i < spoilers.length; i++) spoilers[i].click(); 20-02-2017 18:06:12 |
yup > 20-02-2017 18:29:33 |
vitalii201 пишет
Помогает перебор в обратном порядке: Выделить код Код:var e = document.getElementsByClassName('expando-button collapsed video'); for(var i=e.length-1; i>=0; i--) e[i].click(); |
vitalii201 > 20-02-2017 18:39:38 |
mokujin, спасибо! скрытый текст А мой после перезапуска – нет. ) И какой теперь оставить? ) |
mokujin > 20-02-2017 19:08:48 |
vitalii201 пишет
ну тыж видишь, что разница в том что ищется. Несколько элементов с конца , как показал yup или один. |
yup > 20-02-2017 20:04:23 |
vitalii201 пишет
Если он в скрипте в точности такой же, как в исходном сообщении, то не удивительно - там у for открывающая фигурная скобка лишняя. |
leshiy_odessa > 27-02-2017 21:31:23 |
Есть такая проблема. Магазин прячет весь список товаров и для продолжения списка нужно нажимать — "Еще 12 товаров". Пример — http://www.tavriav.ua/305/c305/ Возможно ли сразу открыть весь список? |
mokujin > 27-02-2017 23:12:22 |
leshiy_odessa Выделить код Код:// ==UserScript== // @name more-goods // @namespace default // @version 2.0 // @grant none // @include http://www.tavriav.ua/* // @run-at document-start // ==/UserScript== document.addEventListener("DOMMouseScroll", function(e) { var elem = document.getElementsByClassName("btn-link-i sprite-bf"); elem[0].click(); }); |
yup > 27-02-2017 23:38:39 |
leshiy_odessa Выделить код Код:function PressButton() { if ((document.getElementsByClassName("btn-link-i sprite-bf").length > 0) && (document.getElementsByClassName("btn-link-i sprite-bf hidden").length == 0)) { document.getElementsByClassName("btn-link-i sprite-bf")[0].click(); setTimeout(PressButton, 1000); } } setTimeout(PressButton, 1); |
leshiy_odessa > 27-02-2017 23:49:09 |
mokujin Хитро. Сначала думал, что не работает ибо по привычке я скролю не колесиком, а полосой прокрутки. А её можно добавить? Еще мне кажется что можно тогда сразу зациклить на N количество раз. N можно вычислять из количества страниц — <a href="/305/c305/page=17/" class="b-paginator-l-i-link txt-black">17</a>. 27-02-2017 23:51:28 Шо то не идет. Ничего не происходит. update2 Ага догадался сделать // @run-at document-idle update3 PressButton, 1000 — это как то жестоко. |
mokujin > 28-02-2017 00:00:58 |
замени "DOMMouseScroll" на просто "scroll" , будет жмакать при любом шевелинии страницы(думаю это не очень хорошо, но не уверен). Но онож подгружается снизу, полоска дергается... так шо лучше мышом, если ноут - двумя пальцами по тачпаду(найти прогу для своего ноута). |
leshiy_odessa > 28-02-2017 00:08:36 |
mokujin Со "scroll" просто волшебно. Скорость открытия впечатляет. Теперь бы скрестить вашу скорость с вариантом от yup. У yup оно делает то что нужно, открывает страницу, но видна задержка в ~500мс. А у mokujin хватаешь за ползунок и вжикаеш вниз и страница наполняется ну очень быстро. update Черт, я понял что у yup 1000 это задержка, а не количество нажатий. |
mokujin > 28-02-2017 17:33:22 |
ну просто у мя за количество кликов отвечает сам бравзер, пока крутишь страницу, пока и будет искать и жмакать. Яж грил, это самое простое что можно. |
Sality > 15-03-2017 17:12:01 |
Привет всем! Выделить код Код:<div class="post_wrap">содержимое сообщения<br /><a href="https://youtu.be/Bkq1PAyGuZY" class="postLink">https://youtu.be/Bkq1PAyGuZY</a></div> HTML код "плеера" (взял с YouTube) Выделить код Код:<iframe src="https://www.youtube.com/embed/Bkq1PAyGuZY?ecver=2" width="640" height="360" frameborder="0" allowfullscreen></iframe> В сети есть множество примеров, но без знаний JS применить их не получилось. Выручайте |
yup > 15-03-2017 23:14:56 |
Sality Выделить код Код:var player, i, link, links = document.getElementsByClassName("postLink"); for (i = links.length-1; i >= 0; i--) { link = links[i]; if ((link.nodename == "A") || (link.hostname == "youtu.be") || (link.hostname == "youtube.com") || (link.hostname == "www.youtube.com")) { player = document.createElement("iframe"); player.src = "https://www.youtube.com/embed" + link.pathname + "?ecver=2"; player.width = 640; player.height = 360; player.frameBorder = 0; player.allowFullscreen = true; link.parentElement.replaceChild(player, link); } } |
Sality > 17-03-2017 12:51:05 |
yup пишет
Большое Вам человеческое спасибо! Очень выручили Этот часть кода вырезал, чтобы затрагивался только youtu.be. Ссылки вида *.youtube.com обрабатываются некорректно, но они и не нужны. Еще раз благодарствую, настроение подняли |
leshiy_odessa > 26-03-2017 23:29:31 |
Еще раз попрошу. Нужно разворачивать всё комментарии на dirty (показать комментарии от ....). P.S. Заранее огромное спасибо. |
leshiy_odessa > 27-03-2017 02:39:09 |
И совсем главная хотелка. rutracker блокирует фреймы и получается что невозможно пользоваться RSS ридером — NewsFox. |
yup > 27-03-2017 04:06:27 |
leshiy_odessa пишет
Например, так: Выделить код Код:// ==UserScript== // @name d3 // @namespace comments // @include https://gif.d3.ru/* // @include http://gif.d3.ru/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== function ClickComment() { var i, links = document.getElementsByClassName('b-comment__expand-button'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1); 27-03-2017 04:27:38 leshiy_odessa пишет
Проверка там такая: Выделить код Код:if ( top != self && !self.location.hostname.match(BB.allowed_translator_hosts) ) { $(function() { $('body').html('<center><h1><br><br>Похоже вас пытаются обмануть<br>frame\'s hostname: ' + self.location.hostname + '</h1></center>'); throw new Error('in frame'); }); } BB.allowed_translator_hosts - это регулярное выражение /^(translate\.googleusercontent\.com)$/ Выделить код Код:// ==UserScript== // @name rutrackerRSS // @namespace rutrackerRSS // @include https://rutracker.org/* // @include http://rutracker.org/* // @version 1 // @run-at document-start // @grant none // ==/UserScript== window.self = window.top; |
leshiy_odessa > 27-03-2017 13:12:52 |
yup Только d3 я поправил домены на — *.d3.ru/* Никак не могу понять зачем там setTimeout = 1000мс. Для перестраховки? P.S. Спасибо всем за помощь. В ответ могу только отблагодарить своими знаниями в железе (любой глюк железа). Любой вопрос по выбору или настройке роутера пишите в личку. |
yup > 27-03-2017 18:07:12 |
leshiy_odessa пишет
Да. Эксперимент показал, что ссылки на ответы там не присутствуют на страничке изначально, а добавляются - скриптами странички - уже после того, как она получена, из-за чего даже @run-at document-idle не помогает. Нужно ждать, пока ссылки добавятся, и только потом их раскрывать. |
leshiy_odessa > 27-03-2017 20:28:07 |
yup update Таки у меня получилось сделать по аналогии для youtube. Теперь красота. Выделить код Код:// ==UserScript== // @name Youtube comments open spoiler // @namespace comments // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== function ClickComment() { var i, links = document.getElementsByClassName('yt-uix-button yt-uix-button-size-default yt-uix-button-link'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1); Выделить код Код:/* --- Скрыть ответы --- */ .yt-uix-expander-head.comment-replies-renderer-expander-up.comment-replies-renderer-hide, /* --- Свернуть --- */ .yt-uix-button.yt-uix-button-size-default.yt-uix-button-link {display:none !important} update2 Пошли какие то подтормаживания. Походу я словил какой непрерывный цикл. |
yup > 27-03-2017 21:08:07 |
leshiy_odessa пишет
Нет. Класс ссылки - именно "b-comment__expand-button". А "b-comment__expand-button-container" - класс того <div>, в который эта ссылка вложена. leshiy_odessa пишет
Что этот <div> на click() реагирует - ну, значит, создатели странички на него обработчик этого события навесили. Можно считать это случайностью и рассчитывать на подобное в других местах не стоит. leshiy_odessa пишет
Функция getElementsByClassName() ищет по точному имени (точнее - по полному набору заданных имён). |
yup > 27-03-2017 21:50:44 |
leshiy_odessa пишет
1. YouTube и так неторопливый сайт. И если подгружать сразу кучу новых сообщений, да ещё одновременно с просмотром видео, то тормозов надо ожидать изначально. |
leshiy_odessa > 28-03-2017 02:35:34 |
yup пишет
Я двигаю за ползунок и как бы спотыкаюсь/зависаю. То есть что то оно там делает уже после того как все комментарии развернуты. update Подвисоны пропали, когда сделал двойной код: разворачивание комментариев + подгрузка других страниц — "Показать ещё". А когда вернул разворачивания спойлеров, то микро зависонны вернулись. Загадка. yup пишет
Если быть точнее то у меня класс такой — yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more comment-section-renderer-paginator yt-uix-sessionlink. |
leshiy_odessa > 28-03-2017 03:13:56 |
Проблема вырисовывается. НА ютубе два вида спойлеров : 1. "Читать дальше" — yt-uix-button yt-uix-button-size-default yt-uix-button-link Если поставить первый, то всё спойлеры открываются, но идут подзависоны. |
yup > 28-03-2017 07:03:45 |
leshiy_odessa пишет
Как-то так получилось, что на тех страничках, на которые я заглядывал в процессе нашего обсуждения, таких штуковин просто не было. Сейчас вот только впервые наткнулся. Кнопки с набором классов "yt-uix-button yt-uix-button-size-default yt-uix-button-link" после нажатия не исчезают. И классы их не меняются. Просто на самом деле у каждого комментария есть две такие кнопки: "Читать дальше" и "Спрятать". И либо они обе невидимые (если комментарий короткий), либо видна только одна из них. При нажатии на видимую кнопку она становится невидимой, а другая - видимой. Вот такой вариант предлагаю попробовать: Выделить код Код:// ==UserScript== // @name Youtube comments open spoiler // @namespace comments // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 2 // @run-at document-idle // @grant none // ==/UserScript== function ExpandComments() { var i, links = document.getElementsByClassName("comment-text-toggle-link read-more"); for (i = links.length-1; i >= 0; i--) if (links[i].className != "comment-text-toggle-link read-more hid") links[i].click(); setTimeout(ExpandComments, 1000); } setTimeout(ExpandComments, 1); leshiy_odessa пишет
Я выхожу в Интернет с ноутбука с довольно маленьким экраном. На страничках YouTube в него помещается только окошко видеоролика и его название. Даже чтобы описание посмотреть - нужно ползунок вниз тянуть. |
leshiy_odessa > 28-03-2017 16:30:28 |
yup пишет
Вы забыли что два вида спойлера ( "Читать дальше" и "Показать ответы"). Два часа пытался их объединить. Один раз даже получилось, но появлялся глюк с вечным нажатием по не заданному классу. Прошу помощи. update Прошла минута от ответа и у меня вышло. Чувствую себя индийским программистов копи пастой. скрытый текст Выделить код Код:/* https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851 */ // ==UserScript== // @name Youtube comments open spoiler // @namespace comments // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== /* ----- "Читать дальше" ----- */ function ExpandComments() { var i, links = document.getElementsByClassName("comment-text-toggle-link read-more"); for (i = links.length-1; i >= 0; i--) if (links[i].className != "comment-text-toggle-link read-more hid") links[i].click(); /* ----- "Показать ответы" ----- */ var i, links = document.getElementsByClassName("comment-replies-renderer-paginator"); for (i = links.length-1; i >= 0; i--) if (links[i].className != "yt-uix-expander-head") links[i].click(); setTimeout(ExpandComments, 1000); } setTimeout(ExpandComments, 1); /* ПОДГРУЗКА ОСТАЛЬНЫХ КОММЕНТАРИЕВ — "Показать ещё". Если много комментариев, то выжирает всю память. function ClickComment() { var i, links = document.getElementsByClassName('yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more comment-section-renderer-paginator yt-uix-sessionlink'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1);*/ Интересно а Java скриптом можно сделать такое? Скрыть классы. .comment-replies-renderer-hide, yup пишет
Я это понял и пытался ночью переделать предыдущий ваш срипт. update2 и тут до меня как до жирафа дошло, что нужно было переименовать вторую function xpandComments() на function ExpandComments2(). Ну я и тупой. |
yup > 28-03-2017 18:09:24 |
leshiy_odessa пишет
Нет, не забыл. Просто это достаточно независимые операции, а объединённого кода я не видел, поэтому не стал заниматься самодеятельностью и предложил только код по той проблеме, которая непосредственно обсуждалась. leshiy_odessa пишет
Из JavaScript можно создавать новые стили, но доступ к существующим стилям есть только на чтение. Поэтому вариантов имеется два: Выделить код Код:var i, elems = document.getElementsByClassName("comment-replies-renderer-hide"); for (i = elems.length-1; i >= 0; i--) elems[i].style.display = false; Но через userContent.css оно как-то красивее и эффективнее. |
leshiy_odessa > 28-03-2017 18:47:45 |
yup пишет
Я думал вы ошиблись с display = false, помозговал пол часа и вспомнил, что видел hide или none, потом потратил еще минут десять на кавычки. В итоге таки родил — for (i = elems.length-1; i >= 0; i--) elems[i].style.display = "none"; Огромное вам спасибо за помощь и науку. скрытый текст Выделить код Код:/* https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851 */ // ==UserScript== // @name Youtube comments open spoiler // @namespace comments // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== /* ----- "Читать дальше" ----- */ function ExpandComments() { var i, links = document.getElementsByClassName("comment-text-toggle-link read-more"); for (i = links.length-1; i >= 0; i--) if (links[i].className != "comment-text-toggle-link read-more hid") links[i].click(); /* ----- "Показать ответы" ----- */ var i, links = document.getElementsByClassName("comment-replies-renderer-paginator"); for (i = links.length-1; i >= 0; i--) if (links[i].className != "yt-uix-expander-head") links[i].click(); setTimeout(ExpandComments, 1000); } setTimeout(ExpandComments, 1); function HideClass() { /* --- УБРАЛ КНОПКУ "Скрыть ответы" --- */ var i, elems = document.getElementsByClassName("comment-replies-renderer-hide"); for (i = elems.length-1; i >= 0; i--) elems[i].style.display = "none"; /* --- УБРАЛ КНОПКУ "Свернуть" --- */ var i, elems = document.getElementsByClassName("comment-text-toggle-link show-less"); for (i = elems.length-1; i >= 0; i--) elems[i].style.display = "none"; setTimeout(HideClass, 1000); } setTimeout(HideClass, 1); /* ПОДГРУЗКА ОСТАЛЬНЫХ КОММЕНТАРИЕВ — "Показать ещё". Если много комментариев, то выжирает всю память. function ClickComment() { var i, links = document.getElementsByClassName('yt-uix-button yt-uix-button-size-default yt-uix-button-default load-more-button yt-uix-load-more comment-section-renderer-paginator yt-uix-sessionlink'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1);*/ |
Rag > 09-04-2017 01:18:32 |
Перейдя с Opera столкнулся с непоняткой. На rutracker.org и на некоторых других сайтах во время перехода с одной страницы на другую появляется сообщение ''Документ просрочен этот документ более не доступен.Чтобы отобразить эту страницу, Pale Moon должен отправить информацию...''и тд.Может кто нибудь, если это возможно сможет написать скрипт (или может такой существует) который бы сразу перебрасывал на заданную страницу.Или есть другой способ.Помогите разрулить ситуацию. |
Coroner > 09-04-2017 01:40:13 |
Rag пишет
Может быть Вы доигрались с параметром browser.cache.check_doc_frequency и кэш отключен ? |
yup > 09-04-2017 01:52:42 |
Rag пишет
Скриптами Custom Buttons или userChrome.js такое можно было бы сделать. Но через Greasemonkey - нельзя. Rag пишет
Чтобы запросы не выдавались, нужно разрешить кеширование страниц и/или увеличить их "срок жизни". Эти параметры передаются сервером в http-заголовках страницы. 09-04-2017 02:01:11 |
Rag > 09-04-2017 04:46:16 |
Спасибо что откликнулись,если вы сможете сделать такой скрипт было бы просто отлично, я в этих делах-Валенок.С CB кнопками и Greasemonkey столкнулся совсем недавно.А на счёт кеширования я так понимаю вы имеете в виду browser.cache.disk_cache_ssl оно у меня true а вот как увеличить их ''срок жизни''я честно говоря не знаю.И мне кажется это не поможет В сообщениях говорится-''В целях безопасности Pale Moon не производит автоматический повторный запрос важных документов''. Ну а дополнения не хотелось бы ставить.Хотя конечно попробую. |
yup > 09-04-2017 04:59:04 |
Rag пишет
В принципе - могу. И даже попытался, когда свой ответ писал. Но пока никак не удаётся получить то самое сообщение от браузера с кнопкой повторной отправки - ни на одном из сайтов. Rag пишет
Нет, я говорил о параметрах кеширования, которые сервер передаёт браузеру в заголовке своего ответа. Там и запрет кеширования может быть прописан, и время хранения странички в кеше. Указанные дополнения позволяют подменять эти параметры до того, как браузер их прочитает. Rag пишет
Должно помочь. Повторный запрос потому и нужен, что странички в кеше нет. Rag пишет
Первое из них для регулярной работы, возможно, - не лучший вариант. А с настройкой остальных двух разобраться будет непросто. Во всяком случае, их автор так говорит. |
Rag > 09-04-2017 05:36:05 |
Попробовал я Rewrite HTTP Headers (JSON) и Rewrite HTTP Headers (JS) нечего не изменилось. Тут мне кажется два варианта или их нужно както подстроить или другое, Palemoon отличный браузер но у него есть очень нехорошая черта, установив дополнения не всегда понятно работает ли оно.Так что может эти дополнения и хорошие но у PM с ними не совместимость или чтото другое.
На SeaMonkey этого может и не получится.Я пробовал на Firefox-45.8.0 и 52.0.1 там всё открывается.И что там разрабы нашаманили такого чего нет в PM неизвестно. |
yup > 09-04-2017 05:53:23 |
Rag пишет
Ещё как надо! Rewrite HTTP Headers - это как Custom Buttons или Greasemonkey: само по себе, без дополнительного "программирования", не делает ничего. Rag пишет
Но я же его периодически вижу. Нечасто, но вижу. Осталось дождаться следующего раза. |
Rag > 09-04-2017 06:02:47 |
Для меня это сложновато. |
yup > 09-04-2017 06:33:17 |
Rag пишет
Попробуем вслепую: Выделить код Код:// ==UserScript== // @name ReSend // @namespace ReSend // @include https://rutracker.org/* // @version 1 // @grant none // ==/UserScript== document.getElementById("errorTryAgain").click(); |
Rag > 09-04-2017 06:41:57 |
Не прокатило.Ни чего не изменилось |
yup > 09-04-2017 06:54:40 |
Rag пишет
Опечатка у меня там была в "@include". Изменил предыдущее сообщение. |
Rag > 09-04-2017 07:30:52 |
Извините мою дремучесть,но я не понял последнее ваше сообщение. |
yup > 09-04-2017 07:36:52 |
В первом варианте текста скрипта я допустил опечатку в одной из строк. Сейчас там уже исправленный вариант. |
Rag > 09-04-2017 07:51:57 |
После включения скрипта изменилась очерёдность сообщений.Было два сообщения ''Документ просрочен''попробовать снова и ''Подтверждение''отправить заново.А теперь они выскакивают сразу оба. 09-04-2017 08:04:28 |
yup > 09-04-2017 08:35:16 |
Rag |
Rag > 09-04-2017 22:54:02 |
1 кнопка ''Попробовать снова'' id=errorTryAgain |
yup > 10-04-2017 00:15:38 |
Rag пишет
Ладно, попробуем обойтись. Выделить код Код:// ==UserScript== // @name ReSend // @namespace ReSend // @include https://rutracker.org/* // @version 2 // @grant none // ==/UserScript== function ClickButton2() { var Buttons = document.getElementsByTagName("button"); if (Buttons != undefined) Buttons[0].click(); else if (window.c_o_u_n_t-- > 0) setTimeout(ClickButton2, 100); }; var Button1 = document.getElementById("errorTryAgain"); if (Button1 == undefined) return; Button1.click(); window.c_o_u_n_t = 5; setTimeout(ClickButton2, 100); |
Rag > 10-04-2017 00:27:08 |
Без изменений.Выскакивают сразу оба сообщения,единственно что меньше жмакать на кнопки. |
yup > 10-04-2017 02:29:40 |
Rag пишет
Как это понимать? Оба сообщения на одной странице? Rag пишет
То есть, кнопки нажимаются сами? Так в этом и состоит назначение скрипта. Rag пишет
А что это такое? Сообщение с анимированным изображением? |
Rag > 10-04-2017 02:44:17 |
yup 10-04-2017 03:02:51 |
yup > 10-04-2017 03:16:56 |
Rag пишет
Осталось разобраться, почему не нажимает вторую кнопку. Для эксперимента попробуйте вот такой вариант: Выделить код Код:// ==UserScript== // @name ReSend // @namespace ReSend // @include https://rutracker.org/* // @version 2.99 // @grant none // ==/UserScript== function ClickButton2() { document.getElementsByTagName("button")[0].click(); }; var Button1 = document.getElementById("errorTryAgain"); if (Button1 == undefined) return; Button1.click(); setTimeout(ClickButton2, 1000); |
Rag > 10-04-2017 03:22:56 |
Ничего не изменилось.Аналогично как с прошлым скриптом. |
yup > 10-04-2017 03:32:32 |
Rag |
Rag > 10-04-2017 03:42:30 |
На Ctrl-Shift-C ни какой реакции,ничего не появляется.Я это уже как то пробовал ничего не вышло. 10-04-2017 04:05:37 |
yup > 10-04-2017 14:36:39 |
Rag пишет
Ctrl-Shift-C - это Инструменты > Веб-разработка > Инспектор Rag пишет
Выкачал. Распаковал. Выкачал ещё раз, теперь уже версию 26.5, ибо нынешняя 27 под XP не запускается. Распаковал, запустил. Обнаружил, что практически никаких встроенных средств для разбирательства со страничками нет. Предлагают загружать дополнения для Firefox. Но Firebug браузер устанавливать не желает - говорит, что несовместим. Хорошо хоть, что DOM Inspector устанавливается и работает. |
Rag > 10-04-2017 19:58:39 |
yup пишет/:
Установил.
Скопировал ''Документ просрочен''с кнопкой ''Попробовать снова.''Может это как то поможет. скрытый текст <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html [ <!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> %htmlDTD; <!ENTITY % netErrorDTD SYSTEM "chrome://global/locale/netError.dtd"> %netErrorDTD; <!ENTITY loadError.label "Проблема при загрузке страницы"> <!-- Specific error messages --> <!ENTITY connectionFailure.title "Попытка соединения не удалась"> <!ENTITY deniedPortAccess.title "Обращение к данному адресу заблокировано"> <!ENTITY dnsNotFound.title "Сервер не найден"> <!ENTITY fileNotFound.title "Файл не найден"> <!ENTITY generic.title "Ой."> <!ENTITY malformedURI.title "Некорректный адрес"> <!ENTITY netInterrupt.title "Соединение было прервано"> <!ENTITY notCached.title "Документ просрочен"> <!ENTITY netOffline.title "Автономный режим"> <!ENTITY contentEncodingError.title "Ошибка в типе содержимого"> <ul> <!ENTITY unsafeContentType.title "Небезопасный тип файла"> <!ENTITY netReset.title "Соединение было сброшено"> <!ENTITY netTimeout.title "Время соединения истекло"> <!ENTITY unknownProtocolFound.title "Неизвестный тип адреса"> <!ENTITY proxyConnectFailure.title "Прокси-сервер отказывается принимать соединения"> <!ENTITY proxyResolveFailure.title "Не удалось найти прокси-сервер"> <!ENTITY redirectLoop.title "Неверное перенаправление на странице"> <!ENTITY unknownSocketType.title "Неизвестный/неопознанный ответ сервера"> <!ENTITY nssFailure2.title "Ошибка при установлении защищённого соединения"> <!ENTITY nssBadCert.title "Ошибка при установлении защищённого соединения"> <!ENTITY sharedLongDesc " <!ENTITY malwareBlocked.title "Этот сайт подозревается в атаках на компьютеры!"> <!ENTITY phishingBlocked.title "Этот сайт подозревается в мошенничестве!"> <!ENTITY cspBlocked.title "Заблокировано политикой защиты содержимого"> <!ENTITY xssBlockMode.title "Заблокировано XSS фильтром"> <!ENTITY corruptedContentError.title "Ошибка содержимого"> <!ENTITY securityOverride.linkText "И вы можете добавить исключение…"> <!-- LOCALIZATION NOTE (securityOverride.warningContent) - Do not translate the <!ENTITY securityOverride.warningContent " <button id='getMeOutOfHereButton'>&securityOverride.getMeOutOfHereButton;</button> <!ENTITY errorReporting.title "Сообщить об этой ошибке"> <!ENTITY remoteXUL.title "Удалённый XUL"> <!ENTITY sslv3Used.title "Установка защищённого соединения не удалась"> <!ENTITY % globalDTD <script type="application/javascript"><![CDATA[ // Note that this file uses document.documentURI to get function getErrorCode() function getCSSClass() // parenthetical match is the second entry function getDescription() // desc == -1 if not found; if so, return an empty string return decodeURIComponent(url.slice(desc + 2)); function retryThis(buttonEl) // Session history has the URL of the page that failed buttonEl.disabled = true; function initPage() var title = document.getElementById("errorTitleText"); var sd = document.getElementById("errorShortDescText"); var ld = document.getElementById("errorLongDesc"); // remove undisplayed errors to avoid bug 39098 var className = getCSSClass(); // Also, if they specified a CSS class, they must supply their own if (err == "remoteXUL") { if (err == "cspBlocked") { if (err == "nssBadCert") { // Everything up to the link should be text content var link = document.getElementById('cert_domain_link'); // If okHost is a wildcard domain ("*.example.com") let's /* case #1: /* case #2: ]]></script><style type="text/css">iframe[src="//rutrk.org/iframe/MG-2/MG-728x90-top.html"], <body dir="ltr"> <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) --> <!-- PAGE CONTAINER (for styling purposes only) --> <!-- Long Description (Note: See netError.dtd for used XHTML tags) --> <!-- Override section - For ssl errors only. Removed on init for other <!-- Retry Button --> </div> <!-- </body>
1. https://rutracker.org/forum/tracker.php?nm=axxis 10-04-2017 20:12:18 |
Rag > 10-04-2017 21:17:14 |
Firebug если что у меня устанавливается. 10-04-2017 21:43:52 |
yup > 10-04-2017 23:02:22 |
Rag пишет
Запросто: Выделить код Код:// ==UserScript== // @name OpenAllInTabs // @namespace OpenAllInTabs // @include https://rutracker.org/* // @version 1.0 // @grant none // ==/UserScript== var a = document.getElementsByTagName("base"); if (a.length == 0) a = document.createElement("base"); else a = a[0]; a.setAttribute("target", "_blank") document.head.appendChild(a); |
Rag > 10-04-2017 23:13:59 |
yup |
yup > 10-04-2017 23:18:58 |
И, кажется, я понял, что не так в прошлом скрипте. Если хотите, попробуйте такой вариант: Выделить код Код:// ==UserScript== // @name ReSend // @namespace ReSend // @include https://rutracker.org/* // @version 3 // @grant none // ==/UserScript== function ClickButton2() { var Buttons = document.getElementsByTagName("button"); if (Buttons.length > 0) Buttons[0].click(); else if (window.c_o_u_n_t-- > 0) setTimeout(ClickButton2, 100); }; var Button1 = document.getElementById("errorTryAgain"); if (Button1 == undefined) return; Button1.click(); window.c_o_u_n_t = 5; setTimeout(ClickButton2, 100); |
Rag > 10-04-2017 23:29:15 |
yup пишет:
Не получилось.Отрабатывает как прошлый вариант.Бросайте его, или вам хочется его победить? |
yup > 10-04-2017 23:31:36 |
Rag пишет
У меня свой самописный скрипт того же назначения. Rag пишет
У меня стоит. Но не как скрипт, а как дополнение: https://addons.mozilla.org/ru/seamonkey … tbypasser/ |
Rag > 10-04-2017 23:38:25 |
yup пишет:
Не поделитесь? |
yup > 10-04-2017 23:42:46 |
Выделить код Код:// ==UserScript== // @name AntiGoogle // @namespace AntiGoogle // @version 0.1.5 // @description Skip redirection URL on Google search results. // @include /https?:\/\/www.google\.[^\/]+\/search.+/ // @include /https?:\/\/google\.[^\/]+\/search.+/ // @copyright yup, 2016 // @grant none // ==/UserScript== function ClearLinks() { var links, i; links = document.getElementsByTagName("a"); for (i = links.length-1; i >= 0 ; i--) { var link = links[i]; if (link.hasAttribute("onmousedown")) { if (link.removeEventListener) { link.removeEventListener("mousedown", link.onmousedown, false); } else if(link.detachEvent) { link.detachEvent("onmousedown", link.onmousedown); } link.removeAttribute("onmousedown"); } if (link.hasAttribute("onmouseup")) { if (link.removeEventListener) { link.removeEventListener("mouseup", link.onmouseup, false); } else if(link.detachEvent) { link.detachEvent("onmouseup", link.onmouseup); } link.removeAttribute("onmouseup"); } if (link.hasAttribute("onclick")) { if (link.removeEventListener) { link.removeEventListener("click", link.click, false); } else if(link.detachEvent) { link.detachEvent("click", link.click); } link.removeAttribute("onclick"); } if (link.href.indexOf("url?sa=") > -1) link.setAttribute("href", decodeURIComponent(link.href.split('&').filter(item => item.substr(0,4) == 'url=')[0].substring(4))) } links = document.getElementsByClassName("i3599"); for (i = links.length-1; i >= 0 ; i--) links[i].removeAttribute("jsaction"); links = document.getElementsByClassName("i3596"); for (i = links.length-1; i >= 0 ; i--) links[i].removeAttribute("jsaction"); setTimeout(ClearLinks, 2000); }; setTimeout(ClearLinks, 20); Здесь гугловский шпионаж убирается не только с обычных поисковых страниц, но и поиска картинок. |
Rag > 10-04-2017 23:53:43 |
yup |
yup > 11-04-2017 00:09:38 |
Rag пишет
Если нажать на ссылку - будет переход по ссылке (в том виде, как она вписана создателями страницы). Rag пишет
Цветом показывается, откуда взялась ссылка на этом значке: из параметра URL, из кодированного параметра URL, из атрибутов ссылки, из обработчика мышиного события, из текстовой части ссылки... 11-04-2017 00:11:08 |
yup > 11-04-2017 10:44:35 |
Получил-таки в PaleMoon запрос на подтверждение отправки данных и понял, почему скрипт не работал: я же думал, что этот запрос выдаётся во вкладке браузера - так же, как и первый - а оказалось, что в отдельном диалоговом окне. Скрипты Greasemonkey туда доступа не имеют в принципе. И я даже не уверен, что скрипты Custom Butons это могут. |
leshiy_odessa > 24-04-2017 13:00:58 |
Хочу избавится от дополнений в которых я использую одну-две функции. скрытый текст Выделить код Код:(function(){ if (document.getElementById("ctraddon_addon-bar") || document.getElementById("ctr_addon-bar")) return; const kNSXUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; Components.utils.import("resource:///modules/CustomizableUI.jsm"); // spring and wrapper let toolbarspring = document.createElementNS(kNSXUL, "spacer"); toolbarspring.setAttribute("flex", "1"); toolbarspring.setAttribute("id", "spring_revertAddonBarStatusBar"); toolbarspring.setAttribute("removable", "false"); let palette = document.getElementById("navigator-toolbox").palette; palette.appendChild(toolbarspring); let dmy = document.createElementNS(kNSXUL, "toolbaritem"); dmy.setAttribute("id", "ucjs-status-bar"); dmy.appendChild(document.getElementById("status-bar")); palette.appendChild(dmy); //create toolbar let addonbar = document.createElementNS(kNSXUL, "toolbar"); addonbar.setAttribute("id", "ucjs-addon-bar"); addonbar.setAttribute("customizable", "true"); addonbar.setAttribute("mode", "icons"); addonbar.setAttribute("iconsize", "small"); addonbar.setAttribute("context", "toolbar-context-menu"); addonbar.setAttribute("class", "toolbar-primary chromeclass-toolbar customization-target"); addonbar.setAttribute("toolbarname", "UCJS Add-on Bar"); addonbar.setAttribute("toolboxid", "navigator-toolbox"); //register toolbar.id try { CustomizableUI.registerArea("ucjs-addon-bar", { type: CustomizableUI.TYPE_TOOLBAR, defaultPlacements: ["spring_revertAddonBarStatusBar", "ucjs-status-bar"] }); } catch(ee) {} var bottombox = document.getElementById("browser-bottombox"); bottombox.appendChild(addonbar); let style = ' \ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); \ #ucjs-addon-bar { \ border-top: 1px solid threedshadow; \ border-bottom: 0 solid transparent; \ } \ \ #main-window[customizing] #ucjs-addon-bar { \ border: 1px dotted threedshadow; \ } \ \ #main-window[customizing] #ucjs-addon-bar #status-bar { \ border: 1px solid black; \ opacity: 0.5; \ } \ \ #main-window[customizing] #spring_revertAddonBarStatusBar { \ margin-left: 10px; \ margin-right:10px; \ border: 1px dashed threedshadow; \ } \ '.replace(/\s+/g, " "); let sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; BookmarkingUI._updateCustomizationState(); })(); |
yup > 24-04-2017 13:08:57 |
leshiy_odessa |
Rag > 03-05-2017 08:00:06 |
yup |
yup > 03-05-2017 09:15:59 |
Rag Но определить, работает скрипт или нет, очень просто - на любой ссылке в поисковой выдаче Google щёлкнуть второй (правой) кнопкой мыши. Если в информационном окошке, где показывается, куда эта ссылка ведёт, (у меня это вообще строка статуса) ссылка изменится с красивой правильной, на длиннющую кошмарную, начинающуюся с "google.com", то скрипт не работает. Если же ссылка останется какой была - значит, скрипт своё дело сделал. |
Rag > 03-05-2017 10:10:04 |
yup |
yup > 03-05-2017 16:22:17 |
Rag пишет
Через Greasemonkey - нет. Но расширения, имеющие желаемую функциональность, существуют, а значит, и через Custom Buttons это сделать можно. Но есть ли смысл делать, если можно взять готовое расширение? |
Rag > 03-05-2017 23:09:20 |
Расширения не хотелось бы,да и названия не знаю.И вряд ли существует расширение с таким функцианалом как мне хочется.К стати говоря на Palemoon ещё и не каждое дополнение подходит. |
yup > 04-05-2017 00:04:51 |
Rag пишет
Разницы между кнопкой и расширением две: Rag пишет
Можно поперебирать в надежде: |
Rag > 04-05-2017 02:27:39 |
yup |
kdjy > 05-05-2017 22:36:02 |
Подскажите, может ли кто поделиться скриптом GreaseMonkey, выдающим всплывающую подсказку с переводом слова с англ.языка на русский, при наведении мыши на него. |
Rag > 05-05-2017 22:47:26 |
Попробуйте может подoйдёт. |
kdjy > 06-05-2017 16:29:31 |
Не совсем то, что нужно, но спасибо за наводку! |
vitalii201 > 06-05-2017 17:04:42 |
kdjy, 2 клика по слову Lingualeo English Translator |
kdjy > 07-05-2017 15:27:20 |
Спасибо вам, но тоже не совсем то. Если на него ткнешь мышью, загрузится другая страница (что не всегда требуется). |
oleg.sgh > 07-05-2017 16:21:58 |
kdjy
|
LittleMontana > 10-05-2017 16:43:30 |
Такая проблема - есть скрипт https://greasyfork.org/ru/scripts/811-r … indow-size. После обновления у меня отвалилась возможность регулировать громкость от дополнения Magic Action for Youtube. Я поискал старые версии, удалил текущую, но мне стало писать, что данный пользовательский скрипт не совместим с FF v53.0 |
Alex_one > 10-05-2017 20:53:09 |
Друзья, подскажите, существует ли в природе такой скрипт, чтоб разворачивал видео youtube в полный экран на сторонних сайтах? |
oleg.sgh > 10-05-2017 22:34:05 |
Alex_one |
Uxapb > 11-05-2017 09:34:32 |
Alex_one пишет
|
Alex_one > 11-05-2017 10:48:27 |
oleg.sgh |
leshiy_odessa > 30-05-2017 20:44:21 |
Задачка задач В роутерах TP-LINK есть возможность блокировать по спискам URL и IP. Добавлять 100-200 полей вручную как вы понимаете достаточно муторно и неэффективно (поначалу так и делал). Поэтому, если кому интересно, то сделайте пожалуйста скрипт для добавления URL или IP с локального списка. Если с локального списка проблематично, то в принципе ничего страшного можно и из списка в самом скрипте. Также есть одно ограничение. URL должен быть не более 31 символа. Я пришел к выводу, что ограничивать URL лучше с конца в начало. Веб эмулятор на котором можно потренироваться — Access Control —> Target —> Edit Списки для тренировки : |
oleg.sgh > 28-07-2017 14:57:36 |
Нужно следующее: |
yup > 29-07-2017 02:54:48 |
oleg.sgh 29-07-2017 03:12:18 Выделить код Код:"use strict"; function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (anchor.hostname in hosts) anchor.target = "_blank"; }); |
oleg.sgh > 29-07-2017 08:18:01 |
yup Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. В таком виде, скрипт появляется на программе, но не срабатывает скрытый текст Выделить код Код:// ==UserScript== // @name Yandex // @namespace al // @include http*://tv.yandex.ru/* // @version 1 // @grant none // ==/UserScript== function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (anchor.hostname in hosts) anchor.target = "_blank"; }); |
yup > 29-07-2017 13:52:13 |
Выделить код Код:// ==UserScript== // @name YandexTV // @namespace YTV // @include http*://tv.yandex.ru/* // @version 1 // @grant none // ==/UserScript== function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (hosts.indexOf(anchor.hostname) >= 0) anchor.target = "_blank"; }); Кстати, "domain1.abc" и "domain2.def" здесь только как пример добавления других сайтов. |
oleg.sgh > 29-07-2017 14:01:57 |
yup |
leshiy_odessa > 01-08-2017 23:57:15 |
Есть такая проблема с habrahabr.ru и geektimes.ru. Значит если включить uBlock, то становится невозможным пользоваться клавиатурными хоткеями "J" (переход к следующему элементу списка) и "K" (переход к предыдущему элементу списка). Вместо следующей статьи идет перескок к последней. Выделить код Код:! ВЫРЕЗАЛ — "Управление" habrahabr .ru##:xpath(.//a[contains(@href,'https://habrahabr.ru/flows/management/')]//ancestor::div[2]) ! ВЫРЕЗАЛ — "МАРКЕТИНГ" habrahabr.ru##:xpath(.//a[contains(@href,'https://habrahabr.ru/flows/marketing/')]//ancestor::div[2]) habrahabr.ru##:xpath(.//a[contains(text(),'Как работают ИТ-специалисты.')]//ancestor::div[2]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/madrobots/blog/')]//ancestor::div[2]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/madrobots/blog/')]//ancestor::div[2]//preceding::div[1]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/top3dshop/')]//ancestor::div[2]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/top3dshop/')]//ancestor::div[2]//preceding::div[1]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/dadget/')]//ancestor::div[2]) geektimes.ru##:xpath(.//a[contains(@href,'https://geektimes.ru/company/dadget/')]//ancestor::div[2]//preceding::div[1]) |
yup > 02-08-2017 00:20:56 |
leshiy_odessa |
leshiy_odessa > 02-08-2017 01:14:41 |
yup пишет
Да это запрос на скрипт. Мне показалось, что это перекликается с тем как вы помогли заблочить проверку на rutracker. Код фильтра с uBlock это для общего понимания. |
Rag > 06-08-2017 23:21:05 |
Ребята помогите разобраться.На Pale Moon 27.4.1 установлен скрипт RU AdList JS Fixes вместо Greasemonkey использую UserScriptLoader Так вот мне кажется что скрипт не работает.Включается (отображается в меню USL) но каких ни будь явных изменений при вкл или откл скрипта на страницах не заметно.Кто пользуется этим скриптом,не посчитайте за труд, киньте пожалуйста ссылку на страницу где явно можно увидеть его работу.А если бы ещё скриншот было бы вообще отлично. |
mokujin > 07-08-2017 04:26:04 |
для PM есть другой плугин для скриптов Guerilla Scripting Хотя, и в USl он вродеб работал норм. Выделить код Код:Ошибка: NotFoundError: Node was not found Источник: file:///D:/MyPROGRAMs/INET/PaleMoon/Profiles/main-profile/guerillajs/scripts/RU%20AdList%20JS%20Fixes.user.js Строка: 803 Так же, ЕЯПП , убирает яндекс.метрику, другие рекламные inline-scripts "отключает" возвращая в их переменные мусор. В общем, это скрипт-помощнег, не замена блокировщику. |
Rag > 07-08-2017 09:58:55 |
mokujin |
mokujin > 07-08-2017 20:03:48 |
Да , у мя PM + GS и этот скрипт убирает отсчёт рекламы(эта ф-ция скрипта у мя точно работает), для этого его и пользую. Выключен в основном, когда хочу киношку - включаю. |
villa7 > 07-08-2017 20:22:37 |
Rag |
Rag > 07-08-2017 22:13:21 |
villa7 |
yup > 08-08-2017 03:32:05 |
leshiy_odessa пишет
Дошли, наконец, руки позаниматься. Не работают у меня на указанных сайтах "J", "K", а также "H" и "L". Даже без uBlock не работают - на чистом-голом Firefox. |
leshiy_odessa > 08-08-2017 11:39:33 |
yup пишет
Вот это поворот. Да нет никаких особых станиц. Прямо с заглавной habrahabr.ru уже должно листать. У меня листает на главной в Firefox (43.0.1) под Windos XP даже если выбрана русская раскладка. Даже если не залогинится. Листает даже в Firefox TOR. Само собою работает и в более новых версиях Firefox 54.0.1 (64-бит). yup пишет
Огромное вам спасибо. |
ifln > 09-08-2017 21:50:32 |
Надо вывести во фрейме слева, вверху |
yup > 10-08-2017 03:10:41 |
leshiy_odessa пишет
Исключено. leshiy_odessa пишет
Но тогда я и сюда писать бы не смог - это ж половина алфавита выпадает. leshiy_odessa пишет
Странно всё. Сейчас проверил - работает. А в прошлый раз пробовал и в Firefox, и в Seamonkey - ни там, ни там не работало. |
Rag > 10-08-2017 14:38:31 |
vitalii201 > 10-08-2017 15:52:48 |
Rag, недавно заменил эти скрипты betterFox-ом, поотключал ненужное и подсказали Стиль для №-ации результатов скрытый текст Выделить код Код:@namespace url(http://www.w3.org/1999/xhtml); @-moz-document domain("*google.com*") { } /* (new8) RESULTS COUNTER */ #search { counter-increment: myIndex 0 !important; } #res .g:before { counter-increment: myIndex ! important; content: counter(myIndex, decimal-leading-zero); position: absolute ; display: inline-block ; min-width: 15px ; margin-top: 2px ; margin-left: -45px ; padding: 1px 2px ; border-radius: 3px ; font-size: 10px ; text-align: center ; color: #000000; background: #FAFAFA ; z-index: 10; } |
Rag > 10-08-2017 16:06:55 |
vitalii201 |
Rag > 11-08-2017 00:12:54 |
Приветствую всех! |
yup > 11-08-2017 01:37:52 |
Rag Но лучше, всё же, формализовать задачу. |
Rag > 11-08-2017 02:51:04 |
yup пишет
Задача простая,меньше переадресаций.Приведённые выше скрипты как бы все заточены под это.Вот поэтому и хотелось бы поставить что то с пользой, не навредив.А то поставлю допустим Clean Links и Прямые ссылки а они в место того чтоб дополнять друг друга начнут мешать. |
yup > 11-08-2017 02:58:17 |
Rag |
Rag > 11-08-2017 03:03:50 |
Пробовал я скрипт ставить "Redirect Bypasser" но что то мне он не шибко понравился.Не понравился из за того что нужно клацать не по ссылке а выцеливать по значку. |
yup > 11-08-2017 03:45:53 |
Зато там может быть показано несколько значков, позволяющих оценить, какой из вариантов расшифровки предполагаемого адреса перехода оказался правильным. |
mokujin > 11-08-2017 05:27:33 |
Rag Rag пишет
там в настр. найди галочку "подменять если один уровень переадресации" (в General) скрытый текст Выделить код Код:// ==UserScript== // @name Clean-URI // @description Очищает ссылки на тех сайтах где стоит переход http://...goto?=<нужный адресс>, делая рядом "чистую ссылку" - '☼' настраевается, можно сразу заменять // @version 1.3.3 // @license GPL // @include http*://vk.com/* // @include http://rutor.in/* // @exclude https://accounts.google.com/* // @exclude https://www.google.com/* // @exclude https://mail.yandex.ua/* // @run-at document-start // ==/UserScript== (function cleanURlredir() { /**************************************************************************************** Options can be set here ****************************************************************************************/ var useSeparateLink = false; //true to create 'CleanURL' links, false to replace existing var fixLinkType = 0; //1 = redirect links, 2 = JavaScript window.open links, 0 = both var allowParams = false; //true = assume that all parameters after the start of the redirect URL are part of the URL //false = (default) only allow the redirect URL to exist within a single query parameter /***************************************************************************************/ for( var x = 0, urlMatch = /window\.open\s*\(\s*["']([^"']*)["']/, httpMatch = /https?(:|%3a)(\/|%2f)(\/|%2f)/i; x < document.links.length; x++ ) { var newHref = '', curLink = document.links[x]; if( ( fixLinkType != 1 ) && curLink.protocol.toLowerCase() == 'javascript:' && curLink.href.match(urlMatch) ) { newHref = (RegExp.$1).replace(/\\\//g,'\/'); } else if( ( fixLinkType != 1 ) && ( curLink.protocol.toLowerCase() == 'javascript:' || curLink.hash == '#' ) && curLink.hasAttribute('onclick') && curLink.getAttribute('onclick').match(urlMatch) ) { newHref = (RegExp.$1).replace(/\\\//g,'\/'); } else if( ( fixLinkType != 2 ) && curLink.hostname && !curLink.hostname.match(/w3c?.org$/) ) { if( pos = curLink.search.match(httpMatch) ) { newHref = unescape(allowParams?curLink.search.substr(pos.index).replace(/#.*$/g,''):curLink.search.substr(pos.index).replace(/[&#].*$/g,'')); } else if( pos = curLink.pathname.match(httpMatch) ) { newHref = unescape(curLink.pathname.substr(pos.index).replace(/[&#].*$/g,'')); } } if( newHref ) { var oRel = curLink.getAttribute('rel'); oRel = oRel ? ( oRel + ' ' ) : ''; curLink.setAttribute('rel',oRel+'redirect'); if( useSeparateLink ) { var oLink = document.createElement('a'); oLink.setAttribute('href',newHref); oLink.appendChild(document.createTextNode('☼')); curLink.parentNode.insertBefore(document.createTextNode(' '),curLink.nextSibling); curLink.parentNode.insertBefore(oLink,curLink.nextSibling.nextSibling); x++; } else { curLink.setAttribute('replacedurl',curLink.href); curLink.title = ( curLink.title ? ( curLink.title + ' - ' ) : '' ) + 'Old URL: ' + curLink.href; curLink.href = newHref; } } } window.addEventListener("DOMContentLoaded",cleanURlredir, false); // это уже добавления, не Лекса // для VK.COM не работает дальше, при пролистывании ленты вниз, ссылки не чистятся. Лучшего, ничего не придумал ;-(( кроме листенера на скроллинг. window.addEventListener("DOMMouseScroll",cleanURlredir, false); })(); |
Rag > 11-08-2017 07:20:50 |
yup mokujin пишет
|
yup > 11-08-2017 11:31:23 |
Rag пишет
Галочка "Replace URL of the link" и две её дочерние. |
Rag > 11-08-2017 11:36:45 |
yup |
leshiy_odessa > 13-08-2017 19:29:50 |
yup пишет
Есть какие то шансы по моему вопросу или там всё запутанно? Хабр конечно слишком гиговый и они могли там наворотить всяких защит. |
yup > 14-08-2017 12:39:15 |
leshiy_odessa пишет
Пока не до того. От меня потребовали срочно предоставить решение задачи "кубатуры круга в одномерном пространстве", этим и занимаюсь. Ещё дня два-три осталось. |
leshiy_odessa > 14-08-2017 13:21:31 |
yup пишет
Я могу ждать месяцами, лишь был хоть какой шанс это решить. |
mokujin > 14-08-2017 15:24:44 |
leshiy_odessa с uMatrix работают гор. клавиши. |
leshiy_odessa > 14-08-2017 16:08:24 |
mokujin пишет
У меня с uBlock тоже. mokujin пишет
Так в этом то и проблема, я хочу чтобы они работали. mokujin пишет
Сомневаюсь. |
mokujin > 14-08-2017 16:39:45 |
что нитак-то?? ты как-то определись с логикой и смыслом. Ты пишешь: leshiy_odessa пишет
и тут же leshiy_odessa пишет
что тоже? тоже работает, так? А я тебе так и написал что у тебя черезмерно что-то режется через xpath , ты сам это пишешь leshiy_odessa пишет
... ты сам режешь эти клавиши |
leshiy_odessa > 15-08-2017 16:14:40 |
yup пишет
Мда, у меня тоже перестало работать. Они сейчас в очередной раз переделывают сайт. Видимо кому там неймется. |
LittleMontana > 16-08-2017 11:42:39 |
Всем привет. Подскажите пожалуйста, как обойти фильтр на сайте. Жму на любую из ссылок - идет перенаправление такого рода, приходится дополнительные действия совершать (при этом, что забавно, кнопка "нет" не работает). Упомянутая "регистрация" на ресурсе не помогла. Если это возможно осуществить скриптами, дополнениями, или чем иным - воспользуюсь любым способом. Заранее спасибо за помощь. |
mokujin > 16-08-2017 11:57:08 |
LittleMontana пишет
жмакаю на любую из ссылок - никакого перенапр-я нету. при скачивании тоже, сразу дает книжку. там станд. рекламмные домены, адривер-адвертур и проч. |
yup > 16-08-2017 13:01:13 |
LittleMontana Выделить код Код:// ==UserScript== // @name Knigilub // @namespace Knigilub // @include http://knigilub.ru/* // @version 1 // @grant none // ==/UserScript== var URLs = document.getElementsByTagName("A") , URL, i ; for (i = URLs.length - 1; i >= 0; i--) { URL = URLs[i]; if (URL.href.substr(0, 24) != "http://knigilub.ru/stat/") continue; if (URL.href.substr(0, 34) == "http://knigilub.ru/stat/statz.php/") continue; URL.href = URL.href.substr(0, 24) + "statz.php/" + URL.href.substr(24); }; |
LittleMontana > 16-08-2017 20:07:54 |
не работает, пишет не совместим с версией FF 54.0.1 |
yup > 17-08-2017 03:05:17 |
LittleMontana пишет
Скрипт несовместим???? Или Greasemonkey? На официальной странице загрузки (https://addons.mozilla.org/ru/firefox/a … asemonkey/) написано, что совместим вплоть до версии 56 (включительно). |
LittleMontana > 17-08-2017 22:16:30 |
yup пишет
скрипт несовместим |
yup > 17-08-2017 23:57:39 |
LittleMontana пишет
На сообщение взглянуть можно? |
Ultima2m > 18-08-2017 05:46:27 |
Вот так работает. Только думает долго, пока ответ от Knigilub получает. скрытый текст Выделить код Код:// ==UserScript== // @name Knigilub // @icon http://knigilub.ru/templates/zag/images/favicon.ico // @namespace Knigilub // @include http://knigilub.ru/stat/* // @grant none // ==/UserScript== if (window.location.href.includes('knigilub.ru/stat')) {window.location = window.location.href.replace('knigilub.ru/stat', 'knigilub.ru/stat/statz.php'); } |
LittleMontana > 18-08-2017 20:51:54 |
Ultima2m |
yup > 19-08-2017 02:00:44 |
LittleMontana пишет
Это откуда такая картинка? Специально только что установил версию 54.0.1 - в списке скриптов Greasemonkey про несовместимость ничего не пишется, да и сама строчка выглядит не так: ссылка "Подробнее" находится сразу под названием "Knigilub", а не далеко справа. Глядючи на favicon сайта в качестве значка скрипта, подумал, что, может быть, это он виноват, но нет: прописал параметр @icon - значок изменился на нужный, а ругань так и не появилась. Может, Вы, кроме добавления @icon, ещё какое-то изменение внесли, и это оно такой эффект даёт? |
LittleMontana > 19-08-2017 21:08:49 |
yup |
yup > 19-08-2017 22:58:33 |
LittleMontana пишет
Да? А назначение значка скрипта само собой образовалось? LittleMontana пишет
Интересно. Даже не знал о таком способе, всегда пользовался официальным: меню "Дополнения" (Ctrl-Shift-A) -> "Пользовательские скрипты". |
LittleMontana > 20-08-2017 18:55:20 |
yup пишет
на первый взгляд я с вами согласен, и на второй тоже можно как то запилить кнопку посредством CB, что бы открывало по нажатию на неё "дополнения" (ctrl+shitf+a)? |
oleg.sgh > 20-08-2017 18:59:39 |
LittleMontana
Можно просто вытащить на панели штатный значок дополнения, в режиме настроить. |
ifln > 20-08-2017 23:40:18 |
Мне надо видеть свой внешний IP на каждой странице куда я захожу. Раньше использовал скрипт show-ip.js от Lex1, но сейчас он не работает. Есть неплохой сервис с примерами применения. Пытался вставить скрипт в код страницы, но не смог. |
yup > 21-08-2017 01:03:17 |
ifln Выделить код Код:var f = document.createElement("iframe"); f.src = "https://api.ipify.org"; document.body.insertBefore(f, document.body.firstChild); Место вставки и стиль элемента отрихтовать по вкусу. |
ifln > 21-08-2017 11:39:23 |
yup, спасибо! Выделить код Код:var f = document.createElement("iframe"); f.src = "https://api.ipify.org"; document.body.insertBefore(f, document.body.firstChild); f.setAttribute('style', 'position:fixed;left:0;top:0;width:180px;height:48px;border:2px solid blue;z-index:9999;'); |
LittleMontana > 22-08-2017 21:14:59 |
oleg.sgh пишет
у меня для кнопки дизайн свой а так, конечно можно |
yup > 22-08-2017 22:10:55 |
LittleMontana Выделить код Код:document.dispatchEvent(new KeyboardEvent('keypress', { charCode:"a".charCodeAt(0), key:'a', code:'KeyA', keyCode:0, ctrlKey:true, shiftKey:true })); |
leshiy_odessa > 24-08-2017 00:21:36 |
Насколок я понимаю Stylis не может поменять html код с помощью CSS (ну почти). И вот я подумал тоже самое сделать с помощью Java. Мне нужно <frameset cols="182,55%,*"> поменять на <frameset cols="300,100%,0%"> |
yup > 24-08-2017 00:43:43 |
leshiy_odessa пишет
Естественно, ведь frameset - не элемент документа, а всего лишь тег. И их "таких красивых" на странице может быть много. |
leshiy_odessa > 24-08-2017 02:28:43 |
yup пишет
Огромное спасибо, работает. |
leshiy_odessa > 13-09-2017 17:43:49 |
YouTubeCenter перестал работать с новым дизайном YouTube. Нужно переключаться на старый, но при этом с включенным скриптом YouTubeCenter показывается "пустая" страница. То есть нужно отключить скрипт YouTubeCenter, перейти на старый дизайн, а потом его снова включить. Само собою cookie живут до закрытия браузера. Вопрос — кому то попадался скрипт или дополнения для автоматического включения старого дизайна YouTube? |
difabor > 02-10-2017 03:51:52 |
Dumby пишет
Обнаружил, что этот код ведёт себя по-разному, в зависимости от того, на каком тулбаре размещена иконка greasemonkey-tbb P.S. Dumby посмотрел и всё сделал: Попробовал переделать. Тоже не конфета, но, надеюсь, чуть получше. От себя добавлю, что прекрасно работает. Прекрасно 02-10-2017 04:06:49 ifln пишет
А можно ещё и так: Выделить код Код:var f = document.createElement("iframe"); var g = document.createElement("iframe"); f.src = 'http://xml.utrace.de/?query='+content.location.host;; g.src = "https://api.ipify.org"; //f.src = 'file:///C:/Users/dfb/Downloads/misc/http%20_plugin.myip.ms_mignews'; document.body.insertBefore(f, document.body.lastChild); f.setAttribute('style', 'position:fixed;left:750px;bottom:40px;width:150px;height:68px; background: rgba(256,256,0,0.5) !important; border:0px solid blue; !important; z-index:9999;'); document.body.insertBefore(g, document.body.lastChild); g.setAttribute('style', 'position:fixed;left:900px;bottom:50px;width:110px;height:44px; background: rgba(0,256,256,0.5) !important; border:0px solid blue; !important; z-index:9999;'); Тогда Вы будете видеть не только свой ИП, но и ИП страницы, на которой Вы находитесь. |
Mishania > 16-10-2017 18:37:04 |
Установил я 4 greasmankey на последний ESR. НА 3.17 мои скрипты глючили, решил попробовать. Мне пока нравится, но.... новое меню ооочень не привычно. Зачем показывать все скрипты сразу - не понятно. Надеюсь к релизу исправят. |
Waik > 10-11-2017 22:12:48 |
Здравствуйте. Подскажите как получить полные исходный код страницы. |
leshiy_odessa > 14-11-2017 00:15:13 |
Кажется есть аналогичный скрипт или рассширения для гугл, который обрезает в URL кликеры. Но открывается уже — http://ad.admitad.com/goto/1e8d114494a2288424f616525dc3e8/?ulp=https%3A%2F%2Fwww.aliexpress.com%2Faf%2FUSB-TTL-UART-PL2303.html&subid=1&subid1=714487&subid2=67002435&subid3=0 Само собою admitad.com режется на уровне роутера. Как бы скриптом обрезать URL до настоящего — https://www.aliexpress.com/af/USB-TTL-UART-PL2303.html |
AjiTae > 17-11-2017 10:25:56 |
Waik |
leshiy_odessa > 28-11-2017 20:55:17 |
leshiy_odessa пишет
Отвечу сам себе. Проблему можно решить с помощью дополнения — Redirector. update С наскоку не получается (исходник) Выделить код Код:// ==UserScript== // @name 4pda.ru redirect remover // @namespace org.benzworld // @description Removes 4pda.ru redirect. // @include http://4pda.ru/* // @grant GM_log // ==/UserScript== (function() { var a = document.getElementsByTagName("a"); for (var i=0; i<a.length; i++) { // Example: document.getElementsByTagName("a")[104].href if (a[i].href.match(/4pda\.ru\/pages\/go\/)) { var realurl = /[?&]u=([^&]*)/.exec(a[i].search)[1]; if (realurl) { a[i].href = decodeURIComponent(realurl); } else { GM_log("Hmm, maybe the parameter name 'out' changed and broke things"); } } } })(); update2 Оказалось всё немножечко проще. Я так сегодня делал, но сдался на пол пути, увидел кучу .js и не захотел их просмотреть глазами. Но меня навели. Нужно было в Firefox ➜ «Веб разработка» ➜ «Сеть» ➜ «JS» искать скрипт с окончанием на =0.6. К примеру : Ну а дальше блокировка uBlock и всё в порядке. |
Tom_Creo > 16-12-2017 23:57:03 |
Друзья, изучаю зверя, не получается вызвать функцию. Добавляю кнопку и функцию по нажатию, не работает... что не так? document.body.innerHTML+="<input type='button' value='dddddddddddddddddd' onclick='hhh()'>" var ppp=""; |
leshiy_odessa > 18-12-2017 14:20:01 |
yup пишет
Что-то сломалось. Вы не могли бы посмотреть еще раз? |
Wave > 18-12-2017 22:31:34 |
Обновил гризманки до последней версии — и всё пропало. В смысле, что со страницы аддонов исчезла вкладка скриптов, а на сайтах установленные скрипты перестали работать. В сторону: это не первый случай, когда последние версии аддонов ломаются в esr-ветке. Хоть вообще их не обновляй. P.s. Мне уже советовали переходить на какую-нибудь другую обезьяну. Уже встречал скрипты, которые работают в других, но не работают в самой гризманки. |
leshiy_odessa > 18-12-2017 23:51:43 |
leshiy_odessa пишет
Мда, разобрался. Это долбаный Greasemonkey. Правильно мне советовали переходить на Tampermonkey. На нём всё заработало. |
Mrakobes666 > 19-12-2017 16:07:34 |
ребята, не пинайте, я устал искать просто, дайте осмысленный скрипт для замены текста на странице. Должен 1 вариант: менять только видимую часть страницы при загрузке (без всяких нажатий на кнопки, автоматом), т.е. если есть на странице слово "ТЕСТ" должен заменить его на "test" 2 вариант: замена кода HTML, для правильного отображения некоторых страниц, типа замены CSS, но проще. Мне надо всего 1 символ заменить на загружаемой странице. Опять же при загрузке этой страницы. *Список адресов с возможностью использовать данную замену, чтобы не менял на всех подряд |
okkamas_knife > 19-12-2017 17:45:58 |
юзай |
Mrakobes666 > 19-12-2017 18:53:46 |
okkamas_knife так я ему замену ищу))) я сижу на последней до квантума лисе, то что установилось с архивных версий фоксреплейса воооообще не пойму как работает! Интерфейс на английсом, чего куда вбивать не ясно, вношу данные - не сохраняется. Хочу обезьяной попробовать решено - наладил аддон |
Stkvsky > 21-12-2017 09:28:21 |
ПОдскажите пожалуйста, можно ли заставлять сайт и ссылки vk.com/ всегда открыватся в мобильной версии (m.vk.com/)? |
pointer > 10-02-2018 16:27:54 |
Stkvsky пишет
Скрипт для vk.com: 10-02-2018 16:34:45 |
Wave > 10-02-2018 19:36:56 |
pointer пишет
Я остановился на обезьяне 3.17 и запретил её обновлять. Но когда и если перейду на квантум, буду смотреть другие обезьяны, скорей всего Tampermonkey или как там его. Потому что Greasemonkey с некоторыми скриптами в принципе не работает. Я с автором одного такого скрипта переписывался, он более-менее нашёл, что гризманки не нравится, но править всё равно не стал, ибо. |
leshiy_odessa > 10-02-2018 20:15:44 |
pointer пишет
Переходите на Tampermonkey. Я на него перешел с Greasemonkey и стало по ощущениям лучше. |
momo2000 > 01-03-2018 07:50:43 |
Помогите сделать простенький скрипт для http://www.ontvtime.ru/records/rentv.html. <***** src="/images/players/FlashMediaPlayback_133.swf" type="application/x-shockwave-flash" width="496" height="288"> Или мне в тему по iMacros? |
ifln > 01-03-2018 10:00:37 |
momo2000 Выделить код Код:@namespace url(http://www.w3.org/1999/xhtml); @-moz-document domain("www.ontvtime.ru") { [id^="dummyid"] {width: 650px; height: 450px;} } |
pointer > 01-03-2018 10:01:26 |
Выделить код Код:for (i = 0; i < document.getElementsByTagName('embed').length; i++) { if (document.getElementsByTagName('embed')[i].src=='http://www.ontvtime.ru/images/players/FlashMediaPlayback_133.swf') { document.getElementsByTagName('embed')[i].width = 650 document.getElementsByTagName('embed')[i].height = 450 } } Проверьте, должно работать. |
momo2000 > 01-03-2018 11:48:14 |
ifln, спасибо |
Stkvsky > 22-03-2018 17:59:42 |
Если можно, имените пожалуйста чтобы ссылки открывались не в активной вкладке, а в фоновой. скрытый текст Выделить код Код:// ==UserScript== // @name Open external link in new tab // @version 0.1.3 // @namespace eight04.blogspot.com // @description This script will open any external link in new tab. Support dynamic content // @include http* // @grant none // ==/UserScript== "use strict"; function getAnchor(element) { while (element && element.nodeName != "A") { element = element.parentNode; } return element; } document.addEventListener("click", function(e){ var anchor = getAnchor(e.target); if (!anchor || anchor.target || anchor.protocol == "javascript:" || e.isTrusted === false || !anchor.offsetParent || (e.isTrusted == null && !e.detail)) { return; } if (anchor.hostname != location.hostname) { anchor.target = "_blank"; } }); |
CoolCmd > 22-03-2018 22:51:41 |
Stkvsky |
momo2000 > 23-03-2018 08:24:50 |
pointer выручай, сайт внезапно стал с HTML плеером, скрипт не работает даже если перейти на старый плеер с FLASH Но каждый раз менятеся ссылка на видео |
leshiy_odessa > 23-03-2018 11:10:14 |
Stkvsky пишет
Открытие URL из сторонней программы без активного окна (фокуса ) (Ctrl + URL) |
Stkvsky > 23-03-2018 11:38:45 |
CoolCmd скрытый текст Выделить код Код:// ==UserScript== // @name [ALL] Links Open ALL in NEW BACKGROUND Tab // @author // @description Open ALL links in NEW BACKGROUND tab. // @downloadURL // @grant GM_openInTab // @homepageURL https://bitbucket.org/INSMODSCUM/userscripts-scripts/src // @icon // @include http*://* // @namespace insmodscum // @require https://greasyfork.org/scripts/12228/code/setMutationHandler.js // @run-at document-start // @updateURL // @version 1.0 // ==/UserScript== // needs this in metadata: // @require https://greasyfork.org/scripts/12228/code/setMutationHandler.js // source: // https://greasyfork.org/en/scripts/12367-open-links-in-new-tab/code attachHandler([].slice.call(document.getElementsByTagName('a'))); setMutationHandler(document, 'a', function(nodes) { attachHandler(nodes); return true; }); function attachHandler(nodes) { nodes.forEach(function(node) { if (node.target != '_blank') { node.onclick = clickHandler; node.addEventListener('click', clickHandler); } }); } function clickHandler(e) { if (e.button > 1) return; e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); // GM_openInTab(this.href, e.button || e.ctrlKey); GM_openInTab(this.href, true); } И вставить в этот скрипт, что бы все ссылки на другие сайты открывались в фоновой вкладке. скрытый текст Выделить код Код:// ==UserScript== // @name Open external link in new tab // @version 0.1.3 // @namespace eight04.blogspot.com // @description This script will open any external link in new tab. Support dynamic content // @include http* // @grant none // ==/UserScript== "use strict"; function getAnchor(element) { while (element && element.nodeName != "A") { element = element.parentNode; } return element; } document.addEventListener("click", function(e){ var anchor = getAnchor(e.target); if (!anchor || anchor.target || anchor.protocol == "javascript:" || e.isTrusted === false || !anchor.offsetParent || (e.isTrusted == null && !e.detail)) { return; } if (anchor.hostname != location.hostname) { anchor.target = "_blank"; } }); 23-03-2018 11:40:42 скрытый текст Выделить код Код:// ==UserScript== // @name [ALL] Links Open EXTERNAL in NEW BACKGROUND Tab // @author // @description Open EXTERNAL links in NEW BACKGROUND tab. // @downloadURL // @grant GM_openInTab // @homepageURL https://bitbucket.org/INSMODSCUM/userscripts-scripts/src // @icon // @include http*://* // @namespace insmodscum // @require // @run-at document-start // @updateURL // @version 1.0 // ==/UserScript== // source: http://userscripts-mirror.org/scripts/review/42130 function getDomain(url) { var parts = url.split('//'); var domain = parts[1]; if(domain.indexOf('/')) { var p = domain.split('/'); domain = p[0]; } if(domain.indexOf(':')) { var d = domain.split(':'); domain = d[0]; } return domain; } function TabOpener(a) { var clickHandler = function(e) { GM_openInTab(a.href, true); e.preventDefault(); }; a.addEventListener('click', clickHandler, false); } var as = document.getElementsByTagName('a'); for (var i = 0, a; a = as[i]; i++) { if (a.hasAttribute('href') && !a.href.match(/^javascript:/i) && (a.href.indexOf(getDomain(document.URL)) < 0) ) { new TabOpener(a); } } // // code below does not work. treats subdomains as "external" (e.g. stuff.slashdot.org is external) // // ==UserScript== // // @name Open external link in new tab // // @version 0.1.3 // // @namespace eight04.blogspot.com // // @description This script will open any external link in new tab. Support dynamic content // // @include http* // // @grant none // // ==/UserScript== // "use strict"; // function getAnchor(element) { // while (element && element.nodeName != "A") { // element = element.parentNode; // } // return element; // } // document.addEventListener("click", function(e){ // var anchor = getAnchor(e.target); // if (!anchor || anchor.target || anchor.protocol == "javascript:" || e.isTrusted === false || !anchor.offsetParent || (e.isTrusted == null && !e.detail)) { // return; // } // if (anchor.hostname != location.hostname) { // anchor.target = "_blank"; // } // }); |
CoolCmd > 23-03-2018 14:09:41 |
Stkvsky извеняюсь, я думал, что из greasemonkey выкинули функцию openInTab. ну тогда так: это меняешь на это и это меняешь на это Выделить код Код:if (anchor.hostname != location.hostname) { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); if (typeof GM === 'object') { GM.openInTab(anchor.href, true); } else { GM_openInTab(anchor.href, true); } } |
Stkvsky > 23-03-2018 16:48:51 |
CoolCmd 23-03-2018 16:50:26 |
CoolCmd > 23-03-2018 18:05:11 |
Stkvsky Выделить код Код:if (e.button !== 0 || !anchor || anchor.target || anchor.protocol == "javascript:" || e.isTrusted === false || !anchor.offsetParent || (e.isTrusted == null && !e.detail)) { |
Stkvsky > 23-03-2018 20:01:35 |
CoolCmd |
pointer > 24-03-2018 10:34:03 |
momo2000 пишет
Выделить код Код:for (i = 0; i < document.getElementsByTagName('video').length; i++) { document.getElementsByTagName('video')[i].style.width = '650px' document.getElementsByTagName('video')[i].style.height = '450px' } |
oleg.sgh > 25-03-2018 18:01:25 |
Нужен скрипт для нового интерфейса ютуба - отображать результаты поиска в виде сетки, плиток. . . в общем так скрытый текст |
momo2000 > 26-03-2018 07:56:12 |
pointer |
leshiy_odessa > 18-04-2018 18:04:33 |
А можно сделать скрипт, чтобы он выполнял локальные команды. К примеру при заходе на youtube — youtube-dl -f bestvideo+bestaudio/best %URL (file:///C:\TEMP\youtube-d.exe) А кнопочку «Download» выдрать отсюда. Выделить код Код:createButton = function() { var obj = document.querySelector('#subscribe-button.style-scope.ytd-video-secondary-info-renderer'); if (obj !== null) { // check if the button has already been created var btnRow = document.getElementById('bestvd2'); if (btnRow === null) { var bestvd2 = document.createElement("div"); bestvd2.id = "bestvd2"; bestvd2.className = "style-scope"; var bvd2_btn = document.createElement("div"); bvd2_btn.className = "style-scope bvd2_btn"; bvd2_btn.style = "background-color: green; border: solid 2px green; border-radius: 2px; color: white; padding: 0px 15px; font-size: 14px; cursor:pointer; height:33px;margin-right: 7px;margin-top: 7px;line-height: 33px;font-weight: 500; display:inline-block;"; bvd2_btn.appendChild(getSpan("Download", "")); bvd2_btn.onclick = bvd2_btn_onclick; obj.parentNode.insertBefore(bestvd2, obj); bestvd2.appendChild(bvd2_btn); } } }; |
ammantida > 30-04-2018 21:44:26 |
всем привет ! как в приложение "greasemonkey" для firefox прописать ...или добавить вот этот скрипт ???? ---------------------------------------------------------------- @-moz-document domain("www.youtube.com") { http://4pda.ru/forum/index.php?showtopic=163303&st=6860#entry72900946 |
okkamas_knife > 30-04-2018 23:23:37 |
это не скрипт а стиль |
foxfox > 01-05-2018 00:37:58 |
Возникла у меня необходимость раскрывать все спойлеры. И ткнули у меня в скрипт-пример: Выделить код Код:// ==UserScript== // @name d3 // @namespace comments // @include https://gif.d3.ru/* // @include http://gif.d3.ru/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== function ClickComment() { var i, links = document.getElementsByClassName('b-comment__expand-button'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1); Помогите его адаптировать. Выделить код Код:<div class="sp-wrap"> <div class="sp-body" title="Содержание"> <h3 class="sp-title">Содержание</h3> <div class="sp-wrap"> <div class="sp-body" title="Полноразмерные скриншоты"> <h3 class="sp-title">Полноразмерные скриншоты</h3> ... </div> Я прописал нужный адрес сайта и пробовал в getElementsByClassName подставлять классы sp-wrap или sp-body - не помогает. Не понимаю. Чего не понимаю - тоже не понимаю) В JavaScript я ни в зуб ногой) |
okkamas_knife > 01-05-2018 01:50:23 |
скорее всего проблема в заголовке |
pointer > 01-05-2018 08:01:42 |
Вместо http://gif.d3.ru/* и http://gif.d3.ru/* просто звёздочка * |
foxfox > 01-05-2018 12:36:20 |
Это я уже всё пробовал - не помогает( |
xrun1 > 01-05-2018 14:48:35 |
foxfox |
leshiy_odessa > 01-05-2018 15:27:37 |
xrun1 пишет
Я сделал самостоятельно, по вышеприведенной аналогии. Выделить код Код:// ==UserScript== // @name LJ open spoiler // @namespace spoilers // @icon http://www.livejournal.com/favicon.ico // @icon64 http://www.livejournal.com/favicon.ico // @include http://*.livejournal.com/* // @include https://*.livejournal.com/* // @run-at document-idle // @grant none // ==/UserScript== /* https://forum.mozilla-russia.org/viewtopic.php?pid=731242#p731242 */ /* --- НАЖИМАЕМ КНОПКУ "Развернуть" --- */ var spoilers = document.getElementsByClassName('ljcut-link-expand'); for (var i = 0; i < spoilers.length; i++) spoilers[i].click(); /* --- УБРАЛ КНОПКУ "Свернуть" --- */ function HideClass() { var i, elems = document.getElementsByClassName("ljcut-expanded"); for (i = elems.length-1; i >= 0; i--) elems[i].style.display = "none"; setTimeout(HideClass, 1000); } setTimeout(HideClass, 1); |
pointer > 01-05-2018 21:21:17 |
xrun1 пишет
Попробуйте это: Выделить код Код:function ClickComment() { var i, links = document.getElementsByClassName('b-leaf-actions-expand'); for (i = links.length-1; i >= 0; i--) { if (links[i].style.display == 'none') continue; aa = links[i].getElementsByTagName('a') aa[0].click(); } setTimeout(ClickComment, 3000); } setTimeout(ClickComment, 10000); После загрузки страницы в течение 10 сек комментарии должны раскрыться. Но брауз подвисает foxfox пишет
Надо знать, что за сайт (точнее, код внутри <div class="sp-wrap"> |
foxfox > 01-05-2018 22:27:03 |
Я начал тренироваться на трекерах. Для рутрекера сработало следующее: Выделить код Код:// ==UserScript== // @name d33 // @namespace comments // @include https://rutracker.org/* // @include http://rutracker.org/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== function ClickComment() { var i, links = document.getElementsByClassName('sp-head folded'); for (i = links.length-1; i >= 0; i--) links[i].click(); /*setTimeout(ClickComment, 1000);*/ } setTimeout(ClickComment, 1); Если не закомментить "setTimeout(ClickComment, 1000)", то комменты будут открываться и закрываться со скоростью 1 секунда. Если вместо 1000 поставить 100, то - значительно быстрее. Непонятно зачем сделан рекурсивный вызов функции. Вообще говоря - всё это жутко интересно. |
pointer > 02-05-2018 05:25:58 |
foxfox пишет
Дело в том, что, например, на том же LJ комменты подгружаются динамически, т.е. послезагрузки страницы срабатывает скрипт GM, а комменты загружаются чуть позже. Из-за этого скрипт не раскрывает их, если выполняется сразу после загрузки страницы. Можно, конечно, поставить 10000 и вызывать функцию 1 раз. Но у меня в коде выше не зря сделано "if (links[i].style.display == 'none') continue;" - если ссылка "развернуть" скрыта, значит, комментарий раскрыть, и скрипт по ней не щёлкает. |
leshiy_odessa > 02-05-2018 10:54:14 |
pointer пишет
У меня другой опыт. Даже при setTimeout - 1 всё спойлеры открываются. Например на Youtube комментарии появляются при скроле вниз и ниже приведенный код работает. Было бы очень интересно, чтобы это неудобство как то обошли. Выделить код Код:/* https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851 */ // ==UserScript== // @name Youtube comments open spoiler [New Design] // @namespace comments // @icon https://www.youtube.com/favicon.ico // @icon64 https://www.youtube.com/favicon.ico // @description Разворачиваем всё комментарии // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== /* ----- "Читать дальше" ----- */ function ReadMoreComments() { /* ----- Выбрали кнопку [Читать дальше] и смотрим её класс ----- */ var i, links = document.getElementsByClassName('more-button style-scope ytd-comment-renderer'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ReadMoreComments, 6000); } setTimeout(ReadMoreComments, 1); /* ----- "Показать ответы" ----- */ function ExpandComments() { var i, links = document.getElementsByClassName('more-button style-scope ytd-comment-replies-renderer'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ExpandComments, 6000); } setTimeout(ExpandComments, 1); |
okkamas_knife > 02-05-2018 12:19:05 |
если вручную то да если программно то пофиг где находится элемент и виден ли он и где фокус, главное чтоб он вообще существовал и клик будет именно по нему. |
selevo > 22-05-2018 15:19:20 |
Почему alert выдаёт только переменную leto? Выделить код Код:var leto =new Date().getFullYear() var Mes =new Date().getMonth() var Den =new Date().getDate() var Chas =new Date().getHours() var Minuta =new Date().getMinutes() var Secunda=new Date().getSeconds() // выводим... alert (leto,Mes+1,Den,Chas,Minuta,Secunda) |
mokujin > 22-05-2018 15:35:21 |
selevo Выделить код Код:let l=new Date().getFullYear(), Mes=new Date().getMonth(), D=new Date().getDate(), C=new Date().getHours(), M=new Date().getMinutes(), S=new Date().getSeconds(); let all = l +'; ' + Mes + '; ' + D + '; ' + C + '; ' + M + '; ' + S; // выводим... alert(all); |
selevo > 22-05-2018 15:55:17 |
Благодарю,с таким извратом заработало, странно что в html документе javascript нормально выводит |
RoxMarty > 08-06-2018 13:03:21 |
Возможно ли (и как?) можно сделать при помощи Greasemonkey взаимодействие с расширением Brief для кастомизации вывода RSS ленты в нём? |
drage2 > 08-06-2018 16:16:59 |
Никто еще не придумал скрипт для Rutube? , типа Inject2Download ?. НLS брать.... |
xrun1 > 16-06-2018 14:32:15 |
Доброе время, форумчане! скрытый текст Выделить код Код:// Автоматически открывать папки закладок на панели закладок, от 22.08.2016. ............... addEventListener('mouseover', (e, targ = e.target)=> { if ( targ.getAttribute('type') != 'menu' || (document.querySelectorAll('[open^="true"]').length > 0 && !document.getElementById('PlacesChevron').hasAttribute('open')) ) return; document.getElementById('PlacesChevronPopup').hidePopup(); setTimeout(()=> { if ( !targ.f ) try { targ.children[0].showPopup(targ, -1, -1, 'popup', 'bottomleft', 'topleft') } catch(e) {}; }, 500, targ.f = false); targ.onmouseleave =()=> { targ.f = true; targ.onmouseleave = null }; }, false, document.getElementById('PlacesToolbar')); Здесь вариант колесом мышки интересует. https://forum.mozilla-russia.org/viewtopic.php?pid=661897#p661897 скрытый текст Выделить код Код:// Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014. .............. (function () { var searchbar = document.getElementById("searchbar"); if ( !searchbar ) return; addEventListener('DOMMouseScroll', function(){ searchbar.textbox.value = ''; }, false, searchbar ); })(); P.S. Пробовал просто перенести код в js - у меня не получилось. |
okkamas_knife > 16-06-2018 16:02:57 |
нет. у гризманки нет прав работать с интерфейсом - оно только для сраниц предназначено. а у тебя там работа с интерфейсом |
sonyas75 > 16-06-2018 16:39:51 |
у меня в 60 esr работают обе кнопки Выделить код Код:// Очистить панель адреса прокруткой колёсиком мыши .................................................................................................... (function () { var urlbar = document.getElementById("urlbar"); if ( !urlbar ) return; addEventListener('DOMMouseScroll', function(){urlbar.value = '';}, false, urlbar ); })(); и Выделить код Код:// Очистить панель поиска прокруткой колёсиком мыши на панели поиска, от 19.09.2014. .............. (function () { var searchbar = document.getElementById("searchbar"); if ( !searchbar ) return; addEventListener('DOMMouseScroll', function(){ searchbar.textbox.value = ''; }, false, searchbar ); })(); нуу, соответственно и СВ работает. по-моему такой - custom_buttons-0.0.5.8.9-fixed8 с вот этим костылем https://forum.mozilla-russia.org/viewtopic.php?pid=757088#p757088 |
xrun1 > 16-06-2018 21:05:05 |
okkamas_knife |
xrun1 > 17-06-2018 14:08:16 |
Для версий до Quantum было удобное расширение "Space Next". Кликаешь клавишей "пробел" на форумах или в поиске - страничка прокручивается на один экран, а по достижении конца переходит на следующую страницу, если есть. Была одна "закавыка", так и не собрался тогда написать автору - на ru-board переход на следующую страницу срабатывал только при клике на кнопку. А в поиске или других форумах всё работало отлично. |
Stkvsky > 07-08-2018 13:05:04 |
Ребята, вы бы не могли помочь пожалуйста Например: Instagram: |
pointer > 09-08-2018 07:06:54 |
Я не знаю точный формат ссылок в inst, но если анкор начинается с @, то вот: Выделить код Код:for (var i = 0; i < document.links.length; i++) { if (document.links[i].innerHTML.charAt(0)=="@") { document.links[i].innerHTML = document.links[i].href; } } |
Stkvsky > 09-08-2018 10:25:10 |
pointer пишет
Вот например пишет человек название своего инстаграм аккаунта: @myrziko |
pointer > 09-08-2018 17:53:46 |
Stkvsky, а мой код выше-то работает? Если нет, то напишите тут полный формат ссылки вот так: |
Stkvsky > 09-08-2018 21:35:24 |
pointer |
pointer > 10-08-2018 04:30:17 |
Stkvsky пишет
Это я понял. Полный формат - просто пример ссылки: всё, что между тегами <a...></a>. С атрибутами тега, конечно (href и пр.). |
Stkvsky > 10-08-2018 15:10:04 |
pointer |
Rag > 29-08-2018 02:53:02 |
Доброго дня всем. |
oleg.sgh > 29-08-2018 07:18:56 |
Rag |
Rag > 29-08-2018 07:52:43 |
oleg.sgh |
Stkvsky > 27-09-2018 15:50:13 |
Ребята, помогите пожалуйста немного изменить скрипт для ютуба. скрытый текст Выделить код Код:// ==UserScript== // @name YouTube Video Speed & Seek Mouse Control // @namespace YPSSMC // @version 4.0 // @description Dynamically adjust video playback speed & seeking instantly with your mousewheel, no more need to go through player menus every time. // @run-at document-ready // @include http://www.youtube.com/* // @include https://www.youtube.com/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @require https://greasyfork.org/scripts/12284-jquery-mousewheel-3-1-13/code/jQuery%20Mousewheel%203113.js // @require https://greasyfork.org/scripts/14098-bililiterange-js/code/bililiteRangejs.js?version=88786 // @require https://greasyfork.org/scripts/14097-jquery-simulate/code/jQuery%20Simulate.js?version=88785 // @require https://greasyfork.org/scripts/14096-jquery-simulate-extended-plugin-1-3-0/code/jQuery%20Simulate%20Extended%20Plugin%20130.js?version=88784 // @require https://greasyfork.org/scripts/14095-jquery-simulate-key-sequence-plugin-1-3-0/code/jQuery%20Simulate%20Key-Sequence%20Plugin%20130.js?version=88783 // @author drhouse // @icon https://s.ytimg.com/yts/img/favicon-vfldLzJxy.ico // ==/UserScript== $(document).ready(function () { function getPlaybackRate() { var v = $('.video-stream')[0]; return v.playbackRate; } var speed = getPlaybackRate().toFixed(2); var isShift = false; var isAlt = false; var ytplayer = document.getElementById("movie_player"); $(ytplayer).prepend('<div id="rate">' + speed + ' </div>'); $("#rate").css("z-index","999"); $("#rate").css('position', 'absolute'); $("#rate").css('top', '0'); $("#rate").css('right', '0'); function setPlaybackRate(r) { var v = $('.video-stream')[0]; if (v === undefined || v.playbackRate === undefined) { setTimeout(function(){setPlaybackRate(r);}, 1000); return; } v.playbackRate = r; } $(window.document).mousewheel(function(e, deltaX) { //Seek | Shift+WheelUp/Down if (e.shiftKey) { if (deltaX>0) { if (location.href.toString().indexOf("embed") == -1) { //youtube.com var ytplayer = document.getElementById("movie_player"); var time = ytplayer.getCurrentTime(); ytplayer.seekTo(time+5, true); } else{$('.video-stream').simulate("key-sequence", { sequence: "l" });} //embed } else { if (location.href.toString().indexOf("embed") == -1) { //youtube.com var ytplayer = document.getElementById("movie_player"); var time = ytplayer.getCurrentTime(); ytplayer.seekTo(time-5, true); } else{$('.video-stream').simulate("key-sequence", { sequence: "j" });} //embed } e.preventDefault(); } //Speed | Alt+WheelUp/Down if (e.altKey) { var step = 0.25; if (e.deltaY<0) { var speed = Math.max(0.0,(getPlaybackRate()-step).toFixed(2)); setPlaybackRate(speed); } else { var speed = Math.min(8,(getPlaybackRate()+step).toFixed(2)); setPlaybackRate(speed); } e.preventDefault(); $("#rate").remove(); var speed = speed.toFixed(2); var ytplayer = document.getElementById("movie_player"); $(ytplayer).prepend('<div id="rate">' + speed + ' </div>'); $("#rate").css("z-index","999"); $("#rate").css('position', 'absolute'); $("#rate").css('top', '0'); $("#rate").css('right', '0'); } }); }) |
xrun1 > 27-09-2018 16:42:55 |
Stkvsky скрытый текст Выделить код Код:// ==UserScript== // @name YouTube Video Speed & Seek Mouse Control // @namespace YPSSMC // @version 4.0 // @description Dynamically adjust video playback speed & seeking instantly with your mousewheel, no more need to go through player menus every time. // @run-at document-ready // @include http://www.youtube.com/* // @include https://www.youtube.com/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js // @require https://greasyfork.org/scripts/12284-jquery-mousewheel-3-1-13/code/jQuery%20Mousewheel%203113.js // @require https://greasyfork.org/scripts/14098-bililiterange-js/code/bililiteRangejs.js?version=88786 // @require https://greasyfork.org/scripts/14097-jquery-simulate/code/jQuery%20Simulate.js?version=88785 // @require https://greasyfork.org/scripts/14096-jquery-simulate-extended-plugin-1-3-0/code/jQuery%20Simulate%20Extended%20Plugin%20130.js?version=88784 // @require https://greasyfork.org/scripts/14095-jquery-simulate-key-sequence-plugin-1-3-0/code/jQuery%20Simulate%20Key-Sequence%20Plugin%20130.js?version=88783 // @author drhouse // @icon https://s.ytimg.com/yts/img/favicon-vfldLzJxy.ico // ==/UserScript== $(document).ready(function () { function getPlaybackRate() { var v = $('.video-stream')[0]; return v.playbackRate; } var speed = getPlaybackRate().toFixed(2); var isShift = false; var isAlt = false; var ytplayer = document.getElementById("movie_player"); $(ytplayer).prepend('<div id="rate">' + speed + ' </div>'); $("#rate").css("z-index","999"); $("#rate").css('position', 'absolute'); $("#rate").css('top', '0'); $("#rate").css('right', '0'); function setPlaybackRate(r) { var v = $('.video-stream')[0]; if (v === undefined || v.playbackRate === undefined) { setTimeout(function(){setPlaybackRate(r);}, 1000); return; } v.playbackRate = r; } $(window.document).mousewheel(function(e, deltaX) { //Seek | Shift+WheelUp/Down // if (e.shiftKey) { if (deltaX>0) { if (location.href.toString().indexOf("embed") == -1) { //youtube.com var ytplayer = document.getElementById("movie_player"); var time = ytplayer.getCurrentTime(); ytplayer.seekTo(time+5, true); } else{$('.video-stream').simulate("key-sequence", { sequence: "l" });} //embed } else { if (location.href.toString().indexOf("embed") == -1) { //youtube.com var ytplayer = document.getElementById("movie_player"); var time = ytplayer.getCurrentTime(); ytplayer.seekTo(time-5, true); } else{$('.video-stream').simulate("key-sequence", { sequence: "j" });} //embed } e.preventDefault(); // } //Speed | Alt+WheelUp/Down if (e.altKey) { var step = 0.25; if (e.deltaY<0) { var speed = Math.max(0.0,(getPlaybackRate()-step).toFixed(2)); setPlaybackRate(speed); } else { var speed = Math.min(8,(getPlaybackRate()+step).toFixed(2)); setPlaybackRate(speed); } e.preventDefault(); $("#rate").remove(); var speed = speed.toFixed(2); var ytplayer = document.getElementById("movie_player"); $(ytplayer).prepend('<div id="rate">' + speed + ' </div>'); $("#rate").css("z-index","999"); $("#rate").css('position', 'absolute'); $("#rate").css('top', '0'); $("#rate").css('right', '0'); } }); }) UPD: Только при этом прокрутка страницы не работает. Так что лучше оставить shift, ИМХО. |
Stkvsky > 27-09-2018 17:43:54 |
xrun1 xrun1 пишет
А я думал скрипт работает только в области видео. |
xrun1 > 27-09-2018 18:18:44 |
del |
leex > 18-10-2018 01:29:56 |
Здравствуйте Очень стало неудобно. Думаю что выполняется какой то скрипт на яндекс новостях. |
Мозилкин > 18-10-2018 05:07:07 |
leex пишет
кликай средней кнопкой мыши и будет тебе счастье |
CoolCmd > 18-10-2018 14:14:05 |
leex похоже на глюк йандекса. вот это попробуй: Выделить код Код:// ==UserScript== // @name CoolCmd // @version 1 // @match https://news.yandex.ru/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { if (e.button === 0 && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey && e.target.closest('a[href].link_agency')) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); |
leex > 18-10-2018 17:00:07 |
CoolCmd Большое спасибо |
taniks > 15-12-2018 22:58:11 |
Всем здравствуйте! Как реализовать после авто обновления страницы location.reload(), автоматическое подтверждение кнопки "Отправить заново" во всплывающем окне ? Спасибо. |
CoolCmd > 16-12-2018 12:06:17 |
taniks можно попробовать в форме на предыдущей странице заменить post на get. иногда прокатывает. |
taniks > 16-12-2018 14:15:59 |
CoolCmd пишет
Мне бы пример, а то с этим языком мало знаком, мне кажется, что это не прокатит. |
radlif > 07-02-2019 02:44:24 |
Делит |
Stkvsky > 09-02-2019 03:36:10 |
Подскажи пожалуйста, можно ли скриптом указать конкретное увеличение страницы (например 150%) для конкретного сайта? |
okkamas_knife > 09-02-2019 03:56:07 |
в фф17 можно было. в новых фиг знает |
Stkvsky > 09-02-2019 06:09:08 |
А как это можно сделать стилем? |
okkamas_knife > 09-02-2019 07:44:01 |
а набрать в гугле css+масштабирование тяжело? |
CoolCmd > 09-02-2019 11:51:54 |
Stkvsky |
Stkvsky > 09-02-2019 14:46:04 |
okkamas_knife пишет
Это я сделал сразу как прочитал, но откуда я могу знать что это именно тот способ о котором ты говоришь? Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. 09-02-2019 14:46:34 |
lexa4ok > 14-02-2019 22:47:22 |
Подскажите кто-нибудь есть ли скрипт или расширение "Shazam прямо в браузере". Ничего не нашел подходящего... Буду очень признателен. ) |
leex > 12-03-2019 17:40:44 |
На сайте pinterest.ru не открываются ссылки в новой вкладке при нажатии СКМ Я думаю что это глюк pinterest.ru а не FF Можно ли попросить сделать скрипт для этого сайта? |
Stkvsky > 12-03-2019 19:32:40 |
leex > 13-03-2019 00:35:22 |
Благодарю! |
Stkvsky > 07-05-2019 09:13:25 |
Нашел скрипт который блокирует автовоспроизведение и загрузку видео на ютубе. (видео загружается сразу с заставкой) скрытый текст Выделить код Код:// ==UserScript== // @author @leoncastro // @namespace https://github.com/leoncastro // @name youtube-stop-autostart // @version 0.02 // @description Stop autostart videos on youtube // @icon http://s.ytimg.com/yts/img/favicon_48-vfl1s0rGh.png // @include /^(https?:)?\/\/(www\.)?youtube\.com\/*.*/ // @compatible firefox+greasemonkey // @compatible chrome+tampermonkey // @grant none // @run-at document-end // ==/UserScript== // v0.01: document.querySelector('#movie_player').cueVideoByPlayerVars(document.querySelector('#movie_player').getVideoData()); // v0.02: function ytStopVideo(i){i&&(i=document.querySelector(i))&&i.cueVideoByPlayerVars(i.getVideoData())} if(/^\/(channel|user)\//i.exec(location.pathname)) // '/channel/CHANNEL_ID' or '/user/UserName' (new MutationObserver(function(m){ytStopVideo('#c4-player')})).observe(document.querySelector('#upsell-video'),{childList:true}); else // '/watch?v=VIDEO_ID' ytStopVideo('#movie_player'); Была такая же функция (блокировки видео) в дополнении magic actions там она работала сразу же при загрузке видео, но вот с очередным обновлением ютуба (сто лет ему жизни) она отвалилась. |
leshiy_odessa > 07-05-2019 11:50:18 |
Stkvsky пишет
Переходите на Enhancer for YouTube™ |
Stkvsky > 07-05-2019 14:59:32 |
leshiy_odessa |
vlad001 > 10-06-2019 23:40:24 |
Подскажите, как это расширение использует скрипты? Вставляет в код страницы что-то типа: ? |
Stkvsky > 25-06-2019 19:26:04 |
Ребята подскажите пожалуйста как использовать этот скрипт? Выделить код Код:var links, link; links = document.getElementsByTagName('A'); for (var i = --links.length; i >= 0; i--) if (links[i].href != '') { link = links[i].getAttribute('href'); if ((links[i].onclick == null) && (link.protocol != 'javascript:') && (link.protocol != 'data:')) links[i].setAttribute('href', 'javascript:document.location="' + link + '"'); }; Куда его нужно вставить? |
Palych177 > 30-06-2019 23:08:24 |
Подскажите, как должен выглядеть этот скрипт - https://forum.mozilla-russia.org/viewto … 47#p740347 , если любая ссылка для любого домена должна открываться в новой вкладке для щелчку ЛКМ? |
CoolCmd > 01-07-2019 00:39:39 |
Palych177 не проверял Выделить код Код:// ==UserScript== // @name Palych177 // @namespace CoolCmd // @match http://*/* // @match https://*/* // @version 1 // @grant none // ==/UserScript== 'use strict'; document.addEventListener('click', e => { const a = e.target.closest('a[href^="http"]:not([target])'); if (a) { a.target = "_blank"; } }); |
Palych177 > 03-07-2019 01:10:20 |
Не работает, увы... А у кого есть скрипт, чтобы каждая ссылка открывалась в новой вкладке по ЛКМ, и так, как определено в ссылке - по щелку колесика? |
CoolCmd > 03-07-2019 09:56:07 |
Palych177 тогда так: Выделить код Код:// ==UserScript== // @name Palych177 // @namespace CoolCmd // @match http://*/* // @match https://*/* // @version 2 // @grant none // ==/UserScript== 'use strict'; document.addEventListener('click', e => { const a = e.target.closest('a[href]:not([target])'); if (a) { a.target = "_blank"; } }); |
Palych177 > 03-07-2019 14:35:07 |
CoolCmd А так просто бомба! Спасибо! А можно ли сюда добавить функцию, чтобы по щелчку колеса прокрутки ссылка открывалась так, как определено в самой ссылке? |
Stkvsky > 04-07-2019 12:25:24 |
Подскажите пожалуйста 04-07-2019 12:28:46 |
CoolCmd > 04-07-2019 15:10:21 |
Stkvsky |
Stkvsky > 04-07-2019 18:43:41 |
CoolCmd |
questman > 18-07-2019 11:16:02 |
MyTimeKill пишет
Наверно так: |
Acid Crash > 18-07-2019 17:53:59 |
Доброго времени суток. Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. Можно ли сделать так, чтобы при открытии оного по умолчанию выбиралось "По дате релиза" (выбирается в выпадайке, которая справа сверху) Заранее благодарен. З.Ы. Я новичок в скрипто-писании, потому буду благодарен за полный код скрипта, если конечно такой найдется. |
questman > 19-07-2019 00:21:48 |
Acid Crash пишет
var jsso = document.querySelector('.js-sort-options'); |
Acid Crash > 19-07-2019 00:44:08 |
questman пишет
Спасибо. Правда не до конца работает. |
questman > 19-07-2019 01:00:40 |
Acid Crash пишет
Я уже понял, позже. |
leshiy_odessa > 19-07-2019 10:56:23 |
Acid Crash пишет
Попробуйте : // ==UserScript== И вообще выкладывайте весь код и только потом задавайте вопрос по нему. |
Acid Crash > 19-07-2019 13:12:43 |
leshiy_odessa пишет
Извиняюсь. скрытый текст Выделить код Код:// ==UserScript== // @name Unnamed Script 150783 // @version 1 // @match https://nichosee.com/* // @run-at document-idle // @grant none // ==/UserScript== var jsso = document.querySelector('.js-sort-options'); jsso.value = 'released';//По дате релиза //jsso.value = 'position';//Если по популярности //jsso.value = 'pubdate';//Если по дате добавления //jsso.value = 'title';//Если по названию //jsso.value = 'rating';//Если по рейтингу |
leshiy_odessa > 24-07-2019 16:11:38 |
Есть такой код из java скрипта загружаемой страницы. Язык по умолчанию там — English. Как его подменить на Russian и при этом до загрузки страницы? Ну то есть чтобы сработало. Выделить код Код:language_map: { zh_CN: 'Chinese (Simplified)', zh_TW: 'Chinese (Traditional)', ca: 'Catalan', da: 'Danish', en: 'English', eu: 'Euskera (Basque)', fr: 'French', de: 'German', it: 'Italian', es: 'Spanish', ja: 'Japanese', nb: 'Norwegian (Bokmal)', nn: 'Norwegian (Nynorsk)', fa: 'Persian (Farsi)', pl: 'Polish', pt_BR: 'Portuguese (Brazil)', ru: 'Russian', sl: 'Slovenian', sv: 'Swedish', tr: 'Turkish' }, render_language: function (value) { if (!value) { return Proxmox.Utils.defaultText + ' (English)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }, language_array: function() { var data = [['__default__', Proxmox.Utils.render_language('')]]; Ext.Object.each(Proxmox.Utils.language_map, function(key, value) { data.push([key, Proxmox.Utils.render_language(value)]); }); return data; }, |
CoolCmd > 24-07-2019 22:39:57 |
leshiy_odessa ты хочешь, чтобы весь текст на странице был на русском? вышеприведенный код эти не занимается. |
leshiy_odessa > 25-07-2019 10:59:24 |
CoolCmd пишет
Это свичер языка. Я хочу чтобы return Proxmox.Utils.defaultText + ' (English)'; ➜ return Proxmox.Utils.defaultText + ' (Russian)'; |
sn260591 > 25-07-2019 12:20:03 |
leshiy_odessa |
leshiy_odessa > 25-07-2019 13:05:01 |
sn260591 пишет
Это веб интерфейс управления Proxmox (виртуальные машины) которая имеет локальный IP адрес. Накидайте хоть какой то код, а я методом перебора и собственных мозгов что-то да наваяю. Спасибо. |
CoolCmd > 25-07-2019 18:16:37 |
Acid Crash пишет
скрытый текст Выделить код Код:// ==UserScript== // @name Acid Crash // @namespace CoolCmd // @match https://nichosee.com/ // @version 1 // @run-at document-start // @grant none // ==/UserScript== 'use strict'; /* // Выполнить ДО обработчика DOMContentLoaded страницы. window.shuffle.options.initialSort = { reverse: true, by: function(e) { return e.getAttribute('data-released'); } }; */ // Выполнить ПОСЛЕ обработчика DOMContentLoaded страницы. window.addEventListener('DOMContentLoaded', () => { const s = document.getElementsByClassName('js-sort-options')[0]; s.value = 'released'; s.dispatchEvent(new Event('change', {bubbles: true})); }); какой-то корявый сайт. после загрузки страницы она сортируется по непонятному условию, которого нет в списке. если сделать по уму и сортировать сразу по дате релиза (закоментированный кусок, его можно выкинуть), то не загружаются изображения обложек. так что я сделал простой вариант, в котором обложки вначале прыгают по странице, но это лучше чем ничего. 25-07-2019 18:35:26 leshiy_odessa пишет
менять код "методом перебора" можно до конца жизни. нужен полный код js-файла. |
leshiy_odessa > 25-07-2019 19:53:44 |
CoolCmd пишет
Нет проблем — https://pastebin.com/15dTMtjj Или вот вся папка, но на мой дилетантский взгляд выбор языка только в — \javascript\proxmox-widget-toolkit\proxmoxlib.js |
Acid Crash > 25-07-2019 21:01:32 |
CoolCmd пишет
Приветствую. |
CoolCmd > 30-07-2019 20:00:51 |
leshiy_odessa Выделить код Код:// ==UserScript== // @name leshiy_odessa // @namespace CoolCmd // @match http://localhost:8080/* // @version 1 // @run-at document-start // @grant none // ==/UserScript== document.addEventListener('DOMContentLoaded', () => { 'use strict'; if (window.Proxmox && Proxmox.Utils) { Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; } }, true); |
leshiy_odessa > 30-07-2019 20:23:59 |
CoolCmd Я в KeePass закостылил — {TAB}{TAB}{TAB}{DOWN}{END}{DELAY 1000}{TAB}{TAB}{TAB}{DOWN}{UP}{UP}{UP}{ENTER}{DELAY 1000}{USERNAME}{DELAY 500}{TAB}{PASSWORD}{ENTER} То есть клавиатурой спускаемся в выбор языка, выбираем самый последний язык в списке(END), не Russian потому что он уже может стоять, потом происходит обновление окна, язык меняется и уже от последнего языка поднимается на Russian. Может такой же костыль на скрипте? Хотя эта идея совсем ужасна, костыль-костылей. |
CoolCmd > 31-07-2019 12:42:32 |
leshiy_odessa попробуй этот вариант и скопируй красный текст из консоли (F12). Выделить код Код:// ==UserScript== // @name leshiy_odessa // @namespace CoolCmd // @match http://localhost:8080/* // @version 2 // @run-at document-start // @grant none // ==/UserScript== (() => { 'use strict'; console.error('!!!' + location.href); document.addEventListener('DOMContentLoaded', () => { console.error('!!!DOMContentLoaded'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); window.addEventListener('load', () => { console.error('!!!load'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); })(); |
leshiy_odessa > 31-07-2019 17:05:09 |
CoolCmd Последний код "ошибки" 3 шт. : скрытый текст Выделить код Код:!!!https://10.1.3.101:8006/#v1:0:18:4:::::: userscript.html:19:13 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:19 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:46 g eval:3 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:2 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:3 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:47 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:49 g eval:3 b eval:2 E_u eval:3 y eval line 1 > Function:65 ja eval line 1 > Function:64 create eval line 1 > Function:75 e eval line 1 > Function:16 run eval line 1 > Function:16 anonymous eval line 1 > Function:77 g eval:3 b eval:2 anonymous eval line 1 > Function:77 anonymous eval line 1 > Function:77 TM_back eval line 1 > Function:78 anonymous eval line 1 > Function:78 g eval:3 exec_fn eval:1 <анонимный> eval:11 U eval:10 !!!DOMContentLoaded userscript.html:21:17 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:21 !!!load userscript.html:34:17 <анонимный> moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43:34 Но там ссылки (moz-extension://), которые ведут прямо в код. Я не знаю как это всё передать. Вот последние две ошибки, а в первой что-то совсем дофига копировать. !!!DOMContentLoaded — 21 строка (➜ ➜ ➜ ➜ ➜). скрытый текст Выделить код Код:(() => { 'use strict'; console.error('!!!' + location.href); document.addEventListener('DOMContentLoaded', () => { ➜ ➜ ➜ ➜ ➜ console.error('!!!DOMContentLoaded'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); window.addEventListener('load', () => { console.error('!!!load'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); })(); })}})(this.context, this.fapply, this.console); //# sourceURL=moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43 }).apply(window["__u__10519422.550962139_"]) !!!load 34 строка — (➜ ➜ ➜ ➜ ➜) скрытый текст Выделить код Код:(() => { 'use strict'; console.error('!!!' + location.href); document.addEventListener('DOMContentLoaded', () => { console.error('!!!DOMContentLoaded'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); window.addEventListener('load', () => { ➜ ➜ ➜ ➜ console.error('!!!load'); Proxmox.Utils.render_language = function(value) { if (!value) { return Proxmox.Utils.defaultText + ' (Russian)'; } var text = Proxmox.Utils.language_map[value]; if (text) { return text + ' (' + value + ')'; } return value; }; }, true); })(); })}})(this.context, this.fapply, this.console); //# sourceURL=moz-extension://b0952e0a-64f4-4314-9493-b29e11a353cd/userscript.html?id=f39fe801-c307-4861-b72b-76f7e35e1d43 }).apply(window["__u__14184145.207414657_"]) |
CoolCmd > 05-08-2019 17:39:40 |
leshiy_odessa |
leshiy_odessa > 05-08-2019 19:36:23 |
CoolCmd пишет
В каком списке? Списке ошибок или в списке выбора языка? CoolCmd пишет
Я так и делал, но он потом возвращается взад. То из-за обновления, то ли из-за того что сам себя проверяет. Скорее первое. update Только что преверил, замена в proxmoxlib.js не работает. return Proxmox.Utils.defaultText + ' (English)'; ➜ return Proxmox.Utils.defaultText + '(Russian)'; |
mokujin > 06-08-2019 13:49:21 |
leshiy_odessa |
Stkvsky > 10-08-2019 16:28:03 |
Помогите пожалуйста скрытый текст Выделить код Код:// ==UserScript== // @name Replace Text On Webpages // @namespace http://userscripts.org/users/23652 // @description Replaces text on websites. Now supports wildcards in search queries. Won't replace text in certain tags like links and code blocks // @include http://* // @include https://* // @include file://* // @exclude http://userscripts.org/scripts/review/* // @exclude http://userscripts.org/scripts/edit/* // @exclude http://userscripts.org/scripts/edit_src/* // @exclude https://userscripts.org/scripts/review/* // @exclude https://userscripts.org/scripts/edit/* // @exclude https://userscripts.org/scripts/edit_src/* // @copyright JoeSimmons // @version 1.1.0 // @license http://creativecommons.org/licenses/by-nc-nd/3.0/us/ // ==/UserScript== (function () { 'use strict'; /* NOTE: You can use \\* to match actual asterisks instead of using it as a wildcard! The examples below show a wildcard in use and a regular asterisk replacement. */ var words = { /////////////////////////////////////////////////////// // Syntax: 'Search word' : 'Replace word', 'your a' : 'you\'re a', 'im\\*o' : 'matching an asterisk, not a wildcard', '/\\bD\\b/g' : '[D]', /////////////////////////////////////////////////////// 'слово1':'слово2'}; ////////////////////////////////////////////////////////////////////////////// // This is where the real code is // Don't edit below this ////////////////////////////////////////////////////////////////////////////// var regexs = [], replacements = [], tagsWhitelist = ['PRE', 'BLOCKQUOTE', 'CODE', 'INPUT', 'BUTTON', 'TEXTAREA'], rIsRegexp = /^\/(.+)\/([gim]+)?$/, word, text, texts, i, userRegexp; // prepareRegex by JoeSimmons // used to take a string and ready it for use in new RegExp() function prepareRegex(string) { return string.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, '\\$1'); } // function to decide whether a parent tag will have its text replaced or not function isTagOk(tag) { return tagsWhitelist.indexOf(tag) === -1; } delete words['']; // so the user can add each entry ending with a comma, // I put an extra empty key/value pair in the object. // so we need to remove it before continuing // convert the 'words' JSON object to an Array for (word in words) { if ( typeof word === 'string' && words.hasOwnProperty(word) ) { userRegexp = word.match(rIsRegexp); // add the search/needle/query if (userRegexp) { regexs.push( new RegExp(userRegexp[1], 'g') ); } else { regexs.push( new RegExp(prepareRegex(word).replace(/\\?\*/g, function (fullMatch) { return fullMatch === '\\*' ? '*' : '[^ ]*'; }), 'g') ); } // add the replacement replacements.push( words[word] ); } } // do the replacement texts = document.evaluate('//body//text()[ normalize-space(.) != "" ]', document, null, 6, null); for (i = 0; text = texts.snapshotItem(i); i += 1) { if ( isTagOk(text.parentNode.tagName) ) { regexs.forEach(function (value, index) { text.data = text.data.replace( value, replacements[index] ); }); } } }()); В описании указано что он не заменяет текст в ссылках и блоках кода Может в этом причина? |
Stkvsky > 10-09-2019 18:45:01 |
Здраствуйте, может ли кто починить скрипт для ютуба который отображает сперва новые коментарии вместо популярных? Выделить код Код:// ==UserScript== // @name Show newer YouTube comments // @namespace com.vsubhash.js.show-youtube-comments-newer // @description Automatically changes YouTube comments filter off // @include https://www.youtube.com/watch* // @exclude %exclude% // @version 2018 // @grant none // ==/UserScript== document.addEventListener("DOMContentLoaded", startItDelayed, false); function startItDelayed() { window.setTimeout(switchCommentsList, 10*1000); } function switchCommentsList() { console.log("Showing newer comments"); var arButtons = document.getElementsByTagName("button"); console.log(arButtons.length); var bFound = false; for (var i = 0; i < arButtons.length; i++) { //console.log(arButtons[i].textContent); if (arButtons[i].textContent.trim() == "Top comments") { arButtons[i].click(); bFound = true; break; } } if (bFound) { //console.log("Menu found--------------"); var arButtons = document.getElementsByTagName("button"); console.log(arButtons.length); for (var i = 0; i < arButtons.length; i++) { //console.log(arButtons[i].textContent); if (arButtons[i].textContent.trim() == "Newest first") { arButtons[i].click(); bFound = true; break; } } } } |
oleg.sgh > 06-12-2019 18:27:27 |
Есть рабочий скрипт для бесконечной прокрутки выдачи Яндека. Что находил по запросу AutoPagerize, не работает. |
Stkvsky > 06-12-2019 18:49:31 |
oleg.sgh Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
oleg.sgh > 06-12-2019 18:53:00 |
Stkvsky |
Stkvsky > 07-12-2019 06:11:52 |
oleg.sgh Я теперь так ищу: Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
oleg.sgh > 07-12-2019 07:53:00 |
Stkvsky |
NikosColev > 03-02-2020 06:46:24 |
Может быть здесь найдётся добрый человек, который уберёт эту напасть возникающую при использовании Greasemonkey: скрытый текст Крайней левой кнопкой панели, лишнюю можно убрать, но... ненадолго. Походить по страницам, пост отправить и они опять спариваются. Чистка кеша не помогает.. При этом с Tampermonkey ничего подобного не происходит. скрытый текст Выделить код Код:// ==UserScript== // @name Ru-Board Helper Furee mod // @version 2.7 (17.01.2020 06:01:07) // @icon http://forum.ru-board.com/favicon.ico // @include http*://forum.ru-board.com/topic.cgi?forum=* // @include http*://72.233.112.78/topic.cgi?forum=* // @include http*://forum.ru-board.com/forum.cgi?forum=* // @include http*://72.233.112.78/forum.cgi?forum=* // @include http*://forum.ru-board.com/messanger.cgi?action=* // @require https://code.jquery.com/jquery-latest.min.js // ==/UserScript== (function() { var IgnName = 'Ignore'; var FrndsName = 'Friends'; var StatName = 'Nick-'; var NickSrchName = 'NickSearch'; var TextSrchName = 'TextSearch'; var Delim1 = ','; var IgnCnt = -1; var SrchInPth = 'topic.cgi'; var SrchForum = 'forum.cgi'; var FrmsName = 'Forums'; var IgnM = new Array(); var UseNickSearch = true; // false; var UseTextSearch = true; // false; var UseQuote = true; // false; var LastNickFind = ''; var UseFriends = true; // false; var FriendsColor = '#cfffcf'; var TblText1s = '<table align="center" bgcolor="#999999" border="0" cellpadding="3" cellspacing="1" width="95%">'; var TblText1e = '</table>'; var AddForumS = 'AddForum'; var IsAddForums = true; // false; var UseHideLink = true; var SaveMessage = false; var UseIgnore = true; var isUseAddPages = true; // false var isUseStatus = true; // false var isUseVeche = true; // false; var FrmLoadListS = ''; var FrmLoaded = ''; var CookDate1 = new Date("1 May 2100 11:00"); var UseLocalStorage = true; // false; function HideText(NickName, TrTag) { DivTag = TrTag.getElementsByTagName('div'); if (!((DivTag.length > 0) && (DivTag[0].id.indexOf('Ignor') == 0))) { if (TrTag.name == undefined) { IgnCnt = IgnCnt +1; IgnM[IgnCnt] = TrTag.innerHTML; TrTag.name = IgnCnt; } else { IgnCnt = TrTag.name; } Ind1 = IgnCnt; TrTag.innerHTML = '' +'<td>' +'<div ID=Ignor' +Ind1 +' Align=left><font class=tit> \u0424\u043e\u0440\u0443\u043c\u0438\u0441\u0442 <b>' +NickName +'</b>' +'<font style="FONT-SIZE:10pt;COLOR:#333333;" class="StatusBlock2" ' +'title="' +NickName +'" ' +'></font>' +' \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u002e ' +'<a Name=' +Ind1 +' ID=AIgnor' +Ind1 +' href=javascript:UnIgn("Ignor' +Ind1 +'")><u>\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0020\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435</u></a></font>' +'</div>' +'</td>' ; document.getElementById('AIgnor' +Ind1).addEventListener("click", function() {UnIgn(this.name)}, false); var TbTag1 = TrTag.parentNode.parentNode; if (TbTag1 != null) {TbTag1.cellPadding = "0"} } } function main(IgnS, isAddLinks, Reverse, FriendsList, SearchText) { var isSearchText = ((SearchText != undefined) && (SearchText != '')); if (isSearchText) {Wrlds1 = splitSrch(SearchText);} if (IgnS == undefined) {IgnS = ''} var Ign = IgnS.split(Delim1); var TrT = document.getElementsByTagName('tr'); for (var i = 0; i < TrT.length ; i++) { var Btag = TrT[i].getElementsByTagName('b'); if (Btag.length == 0) continue; if (isAddLinks) { var TdTag = TrT[i].getElementsByTagName('td'); if (TdTag.length >= 3) { if (TdTag[2].className=="tpc") { var s2 = ''; if (UseHideLink) { s2 = s2 +'<a class="tpc" title="Hide this block' +'"' +' name="' +Btag[0].innerHTML +'"' +' ID=AHideLink' +i +' href=javascript:HidePost1("' +Btag[0].innerHTML +'")' +'>[-]</a> ' ; } if (UseIgnore) { s2 = s2 +'<a class="tpc" title="\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u0020\u0438\u043b\u0438\u0020\u0443\u0434\u0430\u043b\u0438\u0442\u044c ' +"'" +Btag[0].innerHTML +"'" +' \u0438\u0437\u0020\u0438\u0433\u043d\u043e\u0440\u0430" name="' +Btag[0].innerHTML +'"' +' ID=IgnorLink' +i +' href=javascript:AddDelIgn("IgnorLink' +i +'")>\u0418\u0433\u043d\u043e\u0440' +'</a> | '; } if (UseFriends) { s2 = s2 +'<a class="tpc" title="\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\u0020\u0438\u043b\u0438\u0020\u0443\u0434\u0430\u043b\u0438\u0442\u044c ' +"'" +Btag[0].innerHTML +"'" +' \u0438\u0437\u0020\u0441\u043f\u0438\u0441\u043a\u0430\u0020\u0434\u0440\u0443\u0437\u0435\u0439" name="' +Btag[0].innerHTML +'"' +' ID=FriendsLink' +i +' href=javascript:AddDelFrnd("FriendsLink' +i +'")>\u0414\u0440\u0443\u0433' +'</a> | '; } if (UseNickSearch) { s2 = s2 +'<a class="tpc" title="\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0020\u0438\u043b\u0438\u0020\u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c\u0020\u0432\u0441\u0435\u0020\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0020\u043e\u0442 ' +"'" +Btag[0].innerHTML +"'" +'" name="' +Btag[0].innerHTML +'"' +' ID=ANickSrch' +i +' href=javascript:NickSrch("' +Btag[0].innerHTML +'")' +'>\u041f\u043e\u0438\u0441\u043a</a>' +' | '; } if (isUseStatus) { s2 = s2 +'<a class="tpc" title="\u041f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c\u0020\u0441\u0442\u0430\u0442\u0443\u0441\u0020\u0444\u043e\u0440\u0443\u043c\u0438\u0441\u0442\u0443 ' +"'" +Btag[0].innerHTML +"'" +'" name="' +Btag[0].innerHTML +'"' +' ID=ACustStat' +i +' href=javascript:EditCustStat("' +Btag[0].innerHTML +'")' +'>\u0421\u0442\u0430\u0442\u0443\u0441</a>' +' | '; } if (UseQuote) { s2 = s2 +'<a class="tpc" title="\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0020\u0446\u0438\u0442\u0430\u0442\u0443\u0020\u0432\u0020\u043e\u0442\u0432\u0435\u0442\u0020\u0443\u043a\u0430\u0437\u0430\u0432\u0020\u0441\u0441\u044b\u043b\u043a\u0443\u0020\u043d\u0430\u0020\u044d\u0442\u043e\u0442\u0020\u043f\u043e\u0441\u0442\u0438\u043d\u0433\u0020\u0438\u0020\u0435\u0433\u043e\u0020\u0430\u0432\u0442\u043e\u0440\u0430\u002e"' +' ID=AInsSel' +i +' href=javascript:InsertSel1()>\u0426\u0438\u0442\u0430\u0442\u0430' +'</a> | '; } if (SaveMessage) { s2 = s2 +'<a class="tpc" title="\u0422\u0435\u0441\u0442"' +' ID=SaveMessageID' +i +' href=javascript:SaveMessageFn()>\u0422\u0435\u0441\u0442' +'</a> | '; } TdTag[2].innerHTML = '' +s2 +TdTag[2].innerHTML; if (UseIgnore) { document.getElementById('IgnorLink' +i).addEventListener("click", function() {AddDelIgn(this.id)}, false)} if (UseFriends) { document.getElementById('FriendsLink' +i).addEventListener("click", function() {AddDelFrnd(this.id)}, false)} if (UseNickSearch) { document.getElementById('ANickSrch' +i).addEventListener("click", function() {NickSrch(this.name)}, false)} if (UseHideLink) { document.getElementById('AHideLink' +i).addEventListener("click", function() {HidePost1(this.id)}, false)} if (isUseStatus) { document.getElementById('ACustStat' +i).addEventListener("click", function() {EditCustStat(this.name)}, false)} //------------------------------ if (SaveMessage) { document.getElementById('SaveMessageID' +i).addEventListener("click", function() {SaveMessageFn()}, false)} //------------------------------ if (isUseStatus) { FntTgs1 = TdTag[1].getElementsByTagName('font'); if (FntTgs1.length==0) { FTg1 = document.createElement('font'); FTg1.className = 'StatusBlock'; FTg1.title = Btag[0].innerHTML FTg1.innerHTML = ''; TdTag[1].appendChild(FTg1); } } if (UseQuote) { document.getElementById('AInsSel' +i).addEventListener("click", function() {InsertSel1()}, false); } } } } if (isSearchText) { var HrT = TrT[i].getElementsByTagName('hr'); if (HrT.length > 1) { var Find1 = false; var k1 = 0; var SpnT = TrT[i].getElementsByTagName('span'); if (SpnT.length > 0) { var s = SpnT[0].textContent; for (var j = Wrlds1.length -1; j >= 0; j--) { if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) > 0) { Find1 = true; break; } } if (!Find1) { HideText(Btag[0].innerHTML, TrT[i]) } } } } else { if (Reverse) { var HrT = TrT[i].getElementsByTagName('hr'); if (HrT.length <= 1) continue; var Find1 = false; var k1 = 0; for (var j = Ign.length -1; j >= 0; j--) { if (Btag[0].innerHTML == Ign[j]) { Find1 = true; break; } } if (!Find1) {HideText(Btag[0].innerHTML, TrT[i])} } else { for (var j = Ign.length -1; j >= 0; j--) { if (Btag[0].innerHTML == Ign[j]) { HideText(Ign[j], TrT[i]); break; } } } } } if (isSearchText) { for (var i = IgnCnt; i >= 0; i--){ var DivTag1 = document.getElementById('Ignor' +i); if (DivTag1 == null) continue; var BTag2 = DivTag1.getElementsByTagName('b'); if (BTag2.length <= 0) continue; var DTag2 = document.createElement("div"); DTag2.innerHTML = IgnM[i]; var SpnT2 = DTag2.getElementsByTagName('span'); if (SpnT2.length > 0) { var s = SpnT2[0].textContent; for (var j = Wrlds1.length -1; j >= 0; j--) { if (s.toLowerCase().indexOf(Wrlds1[j].toLowerCase()) >= 0) { UnIgn(i); break; } } } } } else { if (Reverse) { for (var i = IgnCnt; i >= 0; i--){ var DivTag1 = document.getElementById('Ignor' +i); if (DivTag1 == null) continue; var BTag2 = DivTag1.getElementsByTagName('b'); if (BTag2.length <= 0) continue; for (var j = 0; j < Ign.length; j++) { if (BTag2[0].innerHTML == Ign[j]) { UnIgn(i); break; } } } } else { for (var i = IgnCnt; i >= 0; i--){ var DivTag1 = document.getElementById('Ignor' +i); if (DivTag1 == null) continue; var BTag2 = DivTag1.getElementsByTagName('b'); if (BTag2.length <= 0) continue; var Find1 = 0; for (var j = 0; j < Ign.length; j++) { if (BTag2[0].innerHTML == Ign[j]) { Find1 = 1; break; } } if (Find1==0) {UnIgn(i)} } } } IgnLinkColor(); if (UseFriends) {SetFriendsColor(getCookie(FrndsName));} SetStauses(); } if (document.location.pathname.indexOf(SrchInPth) > -1) { main(getCookie(IgnName), true, false);} function SetStauses() { var FntTg1 = document.getElementsByTagName('font'); for (var i = 0; i < FntTg1.length ; i++) { if (FntTg1[i].className.indexOf('StatusBlock')!=0) continue; var sCook1 = getCookie(StatName +FntTg1[i].title); if (sCook1 == undefined) {sCook1=''} else { if (sCook1=='') { deleteCookie(StatName +FntTg1[i].title); sCook1=''; } else { if (FntTg1[i].className.indexOf('StatusBlock2')==0) { sCook1 = ' ( ' +sCook1 + ' ) ' } else { sCook1='<br>'+sCook1 } } } FntTg1[i].innerHTML = sCook1; } } function SetFriendsColor(FriendsList) { if ((FriendsList != undefined) && (UseFriends)) { var TrT = document.getElementsByTagName('tr'); var Frnd = FriendsList.split(Delim1); for (var i = 0; i < TrT.length ; i++) { var Btag = TrT[i].getElementsByTagName('b'); if (Btag.length == 0) continue; var TdTag = TrT[i].getElementsByTagName('td'); if (TdTag.length >= 3) { if (TdTag[2].className=="tpc") { if ((FriendsList != undefined) && (UseFriends)) { var Find2 = false; for (var j = 0; j < Frnd.length ; j++) { if (Btag[0].innerHTML == Frnd[j]) { Find2 = true; break; } } if (Find2) { TdTag[1].bgColor = FriendsColor; } else { TdTag[1].bgColor = TdTag[2].bgColor; } } } } } } } function IgnLinkColor(){ var TrT = document.getElementsByTagName('tr'); var Ign2 = getCookie(IgnName); if (Ign2 == undefined) {Ign2 = ''} for (var i = 0; i < TrT.length ; i++) { var ATag = document.getElementById('IgnorLink' +i); if (ATag==null) continue; if (IsTextInStr(ATag.name, Ign2, Delim1)) { ATag.innerHTML = '<font Color=#FF0000>\u0418\u0433\u043d\u043e\u0440</font>' } else { ATag.innerHTML = '\u0418\u0433\u043d\u043e\u0440' } } } function UnIgn(IgnCnt){ var PrTag1 = document.getElementById('Ignor' +IgnCnt).parentNode.parentNode; PrTag1.innerHTML = IgnM[IgnCnt]; IgnLinkColor(); if (UseFriends) {SetFriendsColor(getCookie(FrndsName));} var Tgs1 = PrTag1.getElementsByTagName('a'); if (UseIgnore) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('IgnorLink') == 0) { Tgs1[i].addEventListener("click", function() {AddDelIgn(this.id)}, false); break; } } } if (UseFriends) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('FriendsLink') == 0) { Tgs1[i].addEventListener("click", function() {AddDelFrnd(this.id)}, false); break; } } } if (UseNickSearch) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('ANickSrch') == 0) { Tgs1[i].addEventListener("click", function() {NickSrch(this.name)}, false); break; } } } if (UseHideLink) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('AHideLink') == 0) { Tgs1[i].addEventListener("click", function() {HidePost1(this.id)}, false); break; } } } if (isUseStatus) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('ACustStat') == 0) { Tgs1[i].addEventListener("click", function() {EditCustStat(this.name)}, false); break; } } } //---------------------------- if (SaveMessage) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('SaveMessageID') == 0) { Tgs1[i].addEventListener("click", function() {SaveMessageFn()}, false); break; } } } //---------------------------- if (UseQuote) { for (var i = 0; i < Tgs1.length ; i++) { if (Tgs1[i].id.indexOf('AInsSel') == 0) { Tgs1[i].addEventListener("click", function() {InsertSel1()}, false); break; } } } var TbTag1 = PrTag1.parentNode.parentNode; if (TbTag1 != null) {TbTag1.cellPadding = "5"} SetStauses(); } function EditIgn() { var s = getCookie(IgnName); if (s == undefined) {s = ''} if (s==null) {s='';} s = prompt('\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0438\u0433\u043d\u043e\u0440\u0430\u002e\u0020\u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435\u0020\u0432\u0440\u0430\u0433\u043e\u0432\u0020\u0447\u0435\u0440\u0435\u0437\u0020\u0437\u0430\u043f\u044f\u0442\u0443\u044e\u002e\u0020\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a\u0020\u0046\u0072\u0065\u0061\u006b\u002c\u0020\u0054\u0072\u006f\u006c\u006c', s.replace(/^,/g,"")); if(s!=null){ setCookie(IgnName,PrsUsersList(s),{expires:CookDate1}); main(getCookie(IgnName), false); } }; function EditFrnds() { var s = getCookie(FrndsName); if (s == undefined) {s = ''} if (s==null) {s='';} s = prompt('\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0434\u0440\u0443\u0437\u0435\u0439\u002e\u0020\u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435\u0020\u0434\u0440\u0443\u0437\u0435\u0439\u0020\u0447\u0435\u0440\u0435\u0437\u0020\u0437\u0430\u043f\u044f\u0442\u0443\u044e\u002e\u0020\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a\u0020\u004d\u0065\u002c\u0020\u004d\u0069\u006e\u0065\u002c\u0020\u004d\u0079\u0073\u0065\u006c\u0066', s.replace(/^,/g,"")); if(s!=null){ setCookie(FrndsName,PrsUsersList(s),{expires:CookDate1}); SetFriendsColor(getCookie(FrndsName)); } }; function EditCustStat(aName) { var s = getCookie(StatName +aName); if (s == undefined) {s = ''} if (s==null) {s='';} s = prompt('\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0441\u0442\u0430\u0442\u0443\u0441\u0430\u002e\u0020\u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435\u0020\u0441\u0432\u043e\u0451\u0020\u043c\u043d\u0435\u043d\u0438\u0435\u0020\u043e ' +"'" +aName +"'" +' \u0437\u0434\u0435\u0441\u044c\u002e', s); if(s!=null){ setCookie(StatName +aName,s,{expires:CookDate1}); SetStauses(); } }; //------------------------------ function SaveMessageFn(){ var c = document.createElement("a"); for(var i=0, a=document.querySelectorAll(".post"); i<a.length;i++) var h = new Blob([document.location.href.split("#")[0]+"#"+(+a+1)+"<hr><p>"+document.querySelectorAll(".post")[a].innerHTML],{type:"text/html"}); c.setAttribute("href",window.URL.createObjectURL(h)); c.setAttribute("download",new Date().toTimeString().substr(0,8)+".htm"); c.click(); c.remove(); } //------------------------------ if (document.location.pathname.indexOf(SrchInPth) > -1) { var Td2T = document.getElementsByTagName('td'); for (var i = 0; i < Td2T.length ; i++) { if ((Td2T[i].className=="dats") && (Td2T[i].align=="right")){ var s1 = ''; if (UseTextSearch) { var s2 = getCookie(TextSrchName); if (s2==undefined) {s2=''} else {s2 = s2.replace(/'/g,'')} s1 = s1 +'' +'<div Title="\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a ' +"'" +'Metallica, "Iron Maiden"' +"'" +'. \u041f\u0443\u0441\u0442\u0430\u044f\u0020\u0441\u0442\u0440\u043e\u043a\u0430\u0020\u002d\u0020\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0020\u0432\u0441\u0435\u0020\u043f\u043e\u0441\u0442\u044b">\u041f\u043e\u0438\u0441\u043a\u0020\u0442\u0435\u043a\u0441\u0442\u0430 ' +'<input Type=text ID=TextSrEdit' +" value='" +s2 +"'" +' onkeydown="javascript:if(event.keyCode==13)' +'document.getElementById(' +"'TextSrBtn'" +').click();"' +'>' +'<button Type=button Name=TextSrBtn ID=TextSrBtn OnClick=javascript:TextSrch()>></button></div>' ; } if (UseNickSearch) { var s2 = getCookie(NickSrchName); if (s2==undefined) {s2=''} else {s2 = s2.replace(/"/g,'')} s1 = s1 +'' +'<div Title="\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a ' +"'" +'MyNick, Friend, Etc' +"'" +'. \u041f\u0443\u0441\u0442\u0430\u044f\u0020\u0441\u0442\u0440\u043e\u043a\u0430\u0020\u002d\u0020\u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u0020\u043f\u043e\u0438\u0441\u043a\u002e">\u041f\u043e\u0438\u0441\u043a\u0020\u043d\u0438\u043a\u0430 ' +'<input Type=text ID=NickEdit ' +' value="' +s2 +'"' +' onkeydown="javascript:if(event.keyCode==13)' +'document.getElementById(' +"'NickBtn'" +').click();"' +'>' +'<button Type=button Name=NickBtn ID=NickBtn OnClick=javascript:NickSrch()>></button></div>' ; } if (UseIgnore) { s1 = s1 +'' +' <a ID=IgnEditor title="\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0020\u0441\u043f\u0438\u0441\u043e\u043a\u0020\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445" ' +'href=javascript:EditIgn()>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0438\u0433\u043d\u043e\u0440\u0430</a> • ' } if (UseFriends) { s1 = s1 +'' +'<a ID=IgnFriends title="\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0020\u0441\u043f\u0438\u0441\u043e\u043a\u0020\u0434\u0440\u0443\u0437\u0435\u0439" ' +'href=javascript:EditFrnds()>\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0434\u0440\u0443\u0437\u0435\u0439</a> • ' } if (isUseVeche) { s1 = s1 +'' +'<a ID=AVoteLink title="\u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0020\u0432\u0020\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0451\u043d\u043d\u044b\u0445\u0020\u043f\u043e\u0441\u0442\u0438\u043d\u0433\u0430\u0445\u0020\u043a\u0442\u043e\u0020\u043a\u0430\u043a\u0020\u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b" ' +'href=javascript:CalcVeche("")>\u0413\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435</a> • ' } Td2T[i].innerHTML = s1 +Td2T[i].innerHTML; if (UseIgnore) { document.getElementById('IgnEditor').addEventListener("click", function() {EditIgn()}, false); } if (UseNickSearch) { document.getElementById('NickBtn').addEventListener("click", function() {NickSrch()}, false); } if (UseTextSearch) { document.getElementById('TextSrBtn').addEventListener("click", function() {TextSrch()}, false); } if (UseFriends) { document.getElementById('IgnFriends').addEventListener("click", function() {EditFrnds()}, false); } if (isUseVeche) { document.getElementById('AVoteLink').addEventListener("click", function() {CalcVeche("")}, false); } break; } } } function HidePost1(anID) { var aHideLink = document.getElementById(anID); if (aHideLink != null) { var aTr = aHideLink.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode; if (aTr != null) {HideText(aHideLink.name, aTr)} } SetStauses(); } function NickSrch(aName) { if (aName == undefined) { var s = PrsUsersList(document.getElementById('NickEdit').value); setCookie(NickSrchName,s,{expires:CookDate1}); } else { if (IsTextInStr(aName, LastNickFind, Delim1)) { var s = RemoveTextFromStr(aName, LastNickFind, Delim1); } else { var s = PrsUsersList(LastNickFind +Delim1 +aName); } } LastNickFind = s; if (s==null) { main(getCookie(IgnName), false) } else { if (s=='') { main(getCookie(IgnName), false); } else { main(s, false, true); } } }; function TextSrch() { var s = document.getElementById('TextSrEdit').value; setCookie(TextSrchName,s,{expires:CookDate1}); if ((s==null) ) { main(getCookie(IgnName), false) } else { main('', false, false, '', s); } }; function IsTextInStr(Name, List, Delimetr) { if (List==undefined) {return false} else { var s = List.split(Delimetr); var Find1 = false; for (var j = s.length -1; j >= 0; j--) { if (s[j] == Name) { Find1 = true; s.splice(j, 1); break; } } return Find1; } } function RemoveTextFromStr(Name, List, Delimetr) { var sl1 = List.split(Delimetr); var Find1 = false; for (var j = sl1.length -1; j >= 0; j--) { if (sl1[j] == Name) { sl1.splice(j, 1); Find1 = true; } } return Find1 ? sl1.join(Delimetr) : List; } function AddDelIgn(IgnTagName){ var aTag = document.getElementById(IgnTagName); var sName1 = aTag.name; var s1 = getCookie(IgnName); if (s1 == undefined) {s1 = ''} if (IsTextInStr(sName1, s1, Delim1)) { if (confirm('(-) \u0412\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c "' +sName1 + '" \u0438\u0437\u0020\u0438\u0433\u043d\u043e\u0440\u0430\u003f')) { var s2 = RemoveTextFromStr(sName1, s1, Delim1); if (s2 != s1) { setCookie(IgnName, s2,{expires:CookDate1}); main(s2, false); } } } else { if (confirm('(+) \u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c "' +sName1 + '" \u0432\u0020\u0438\u0433\u043d\u043e\u0440\u003f')) { s1 = s1 +Delim1 +sName1; setCookie(IgnName, s1,{expires:CookDate1}); main(s1, false); } } } function AddDelFrnd(FrndTagName){ var aTag = document.getElementById(FrndTagName); var sName1 = aTag.name; var s1 = getCookie(FrndsName); if (s1 == undefined) {s1 = ''} if (IsTextInStr(sName1, s1, Delim1)) { if (confirm('(-) \u0423\u0434\u0430\u043b\u0438\u0442\u044c "' +sName1 + '" \u0438\u0437\u0020\u0434\u0440\u0443\u0437\u0435\u0439\u003f')) { var s2 = RemoveTextFromStr(sName1, s1, Delim1); if (s2 != s1) { setCookie(FrndsName, s2,{expires:CookDate1}); if (UseFriends) {SetFriendsColor(getCookie(FrndsName));} } } } else { if (confirm('(+) \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c "' +sName1 + '" \u0432\u0020\u0434\u0440\u0443\u0437\u044c\u044f\u003f')) { s1 = s1 +Delim1 +sName1; setCookie(FrndsName, s1,{expires:CookDate1}); if (UseFriends) {SetFriendsColor(getCookie(FrndsName));} } } } if ((isUseAddPages) && (document.location.pathname.indexOf(SrchInPth) > -1)) { function AddPageLinks1(aTag) { if ((aTag.className == 'small') && (aTag.colSpan == 2) && (aTag.align == 'left') ) { if (aTag.getElementsByTagName('div').length >0) return false; if (aTag.getElementsByTagName('table').length >0) return false; if (aTag.getElementsByTagName('form').length >0) return false; if (aTag.getElementsByTagName('input').length >0) return false; var s1 = document.location.href; s = '' +' | ' +' <a title="\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0020\u0432\u0441\u0435\u0020\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b" href=' +SetUrlTxt(s1, 'all').replace(/glp&/, '') +'>\u0412\u0441\u0435</a> ' +' | ' +' <a title="\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0020\u0432\u0441\u0435\u0020\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\u0020\u043e\u0442\u0020\u0442\u0435\u043a\u0443\u0449\u0435\u0439\u0020\u0438\u0020\u0434\u043e\u0020\u043a\u043e\u043d\u0446\u0430" href=' +SetUrlTxt(s1, 'limit=1000').replace(/all&/,'').replace(/glp&/,'') +'>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435</a> ' +' | ' +' <a title="\u0421\u0441\u044b\u043b\u043a\u0430\u0020\u0432\u0435\u0434\u0451\u0442\u0020\u0412\u0421\u0415\u0413\u0414\u0410\u0020\u043d\u0430\u0020\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e\u0020\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443\u0020\u0442\u0435\u043c\u044b\u002e\u0020\u0423\u0434\u043e\u0431\u043d\u0430\u0020\u0434\u043b\u044f\u0020\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0020\u0432\u0020\u0438\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435\u002e" href=' +SetUrlTxt(s1, 'glp').replace(/all&/,'') +'>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f</a> ' +' | ' ; aTag.innerHTML = aTag.innerHTML +s; return true; } else {return false} } var TdTg1 = document.getElementsByTagName('td'); for (var i = 0; i<TdTg1.length; i++) { if (AddPageLinks1(TdTg1[i])) break} for (var i = TdTg1.length -1; i>=0; i--) { if (AddPageLinks1(TdTg1[i])) break} } function getCookie(name) { if ((UseLocalStorage) && (window.localStorage)) { var s1 = window.localStorage.getItem(name) || ''; if (s1 != '') return s1; } var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )) return matches ? decodeURIComponent(matches[1]) : undefined } function setCookie(name, value, props) { if ((UseLocalStorage) && (window.localStorage)) { window.localStorage.setItem(name, value); } else { props = props || {} var exp = props.expires if (typeof exp == "number" && exp) { var d = new Date() d.setTime(d.getTime() + exp*1000) exp = props.expires = d } if(exp && exp.toUTCString) { props.expires = exp.toUTCString() } value = encodeURIComponent(value) var updatedCookie = name + "=" + value for(var propName in props){ updatedCookie += "; " + propName var propValue = props[propName] if(propValue !== true){ updatedCookie += "=" + propValue } } document.cookie = updatedCookie } } function deleteCookie(name) { if ((UseLocalStorage) && (window.localStorage)) { window.localStorage.removeItem(name); setCookie(name, null, { expires: -1 }) } else setCookie(name, null, { expires: -1 }) } String.prototype.get = function(p){ return (match = this.match(new RegExp("[?|&]?" + p + "=([^&]*)"))) ? match[1] : false;} function insertAfter(parent, node, referenceNode) { parent.insertBefore(node, referenceNode.nextSibling); } function splitSrch(s){ a = []; s.replace(/"([^"]*)"|[\S]+/g, function(w, p) {a.push(p||w)}); return a; } function PrsUsersList(aUserNicks) { var s = aUserNicks.replace(/,+/g,","); s = s.replace(/\s+/g," "); s = s.replace(/[, ]$/g,"").replace(/^,/g,""); s = s.replace(/,\s/g,","); return s; } function SetUrlTxt(u, s) { return ((u.indexOf('&' +s) < 0) && (u.indexOf('?' +s) < 0)) ? u.replace(/[?](.*)/g, function(a, b) {return '?' +s +'&'+b}) : u;} var isPAdding = false; var CurFLoad = -1; var CurForumNbm = window.location.search.get('forum'); if (IsAddForums) { if ( (document.location.pathname.indexOf(SrchForum) > -1) ) { var TrTag3 = document.getElementsByClassName('tit') DTag1 = document.createElement("div"); DTag1.id = 'Div100'; var LoadList2 = getCookie(FrmsName +CurForumNbm); if (LoadList2 == undefined) {LoadList2 = ''} var FrmLoadList = PrsUsersList(LoadList2).split(Delim1); DTag1.innerHTML = '' +'<center>' +'<div id="vote_status1"><br></div>' +'\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435\u0020\u0444\u043e\u0440\u0443\u043c\u044b: <font id=FForums>' +LoadList2 +'</font>' +' <input id=btnv1 value="Edit"' +' onclick="EdFrmsLst()" type="button" />' +' <font id="vote_status2">\u041c\u0435\u0441\u0442\u043e\u0020\u043e\u0442\u0432\u0435\u0442\u0430\u0020\u0441\u0435\u0440\u0432\u0435\u0440\u0430</font>' +'</center>'; insertAfter(TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode.parentNode, DTag1, TrTag3[TrTag3.length -1].parentNode.parentNode.parentNode); document.getElementById('btnv1').addEventListener("click", function() {EdFrmsLst()}, false); } } function EdFrmsLst() { var s = getCookie(FrmsName +CurForumNbm); if (s == undefined) {s = ''} if (s==null) {s='';} s = prompt('\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0020\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445\u0020\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u002e\u0020\u0417\u0430\u043f\u0438\u0448\u0438\u0442\u0435\u0020\u043d\u043e\u043c\u0435\u0440\u0430\u0020\u0444\u043e\u0440\u0443\u043c\u043e\u0432\u002e\u0020\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a\u0020\u0031\u0033\u002c\u0020\u0037\u0032\u002c\u0020\u0037\u0035', s.replace(/^,/g,"")); if(s!=null){ FrmLoadListS = PrsUsersList(s); setCookie(FrmsName +CurForumNbm, FrmLoadListS,{expires:CookDate1}); var FrmLoadList = PrsUsersList(FrmLoadListS).split(Delim1); document.getElementById('FForums').innerHTML = s; var FrmLoadedList = PrsUsersList(FrmLoaded).split(Delim1); for (var j = 0; j < FrmLoadedList.length; j++) { if (FrmLoadedList[j] == '') continue; var Find1 = false; for (var i = 0; i < FrmLoadList.length; i++) { if (FrmLoadedList[j] == FrmLoadList[i]) { Find1 = true; break; } } var FrTag1 = document.getElementById(AddForumS +FrmLoadedList[j]); if (FrTag1 == null) continue; if (Find1) { FrTag1.style.display = "inline"; } else { FrTag1.style.display = "none"; } } AddPage1(); } }; function AddPage1() { if (CurFLoad != -1) {return false} var statusElem1 = document.getElementById('vote_status1'); var statusElem2 = document.getElementById('vote_status2'); if ((statusElem1 == null) || (statusElem2 == null)) return false; Find1 = 0; s = getCookie(FrmsName +CurForumNbm); if (s == undefined) {s = ''} var FrmLoadList = PrsUsersList(s).split(Delim1); for (var j = 0; j < FrmLoadList.length; j++) { if (FrmLoadList[j] == '') continue; var tmp3 = document.getElementById(AddForumS +FrmLoadList[j]); if (tmp3 == null) { CurFLoad = FrmLoadList[j]; Find1 = 1; break; } } if (Find1 == 1) { var req = getXmlHttp() req.onreadystatechange = function() { if (req.readyState == 4) { statusElem2.innerHTML = req.statusText +' \u0424\u043e\u0440\u0443\u043c\u003a' +CurFLoad; if(req.status == 200) { if (document.getElementById(AddForumS +CurFLoad) != null) { CurFLoad = -1; return false; } var temp = document.createElement('div'); temp.innerHTML = req.responseText; var TdTags1 = temp.getElementsByClassName("tit"); var NodeNew1 = document.createElement('div'); NodeNew1.id = AddForumS +CurFLoad; FrmLoaded = FrmLoaded +',' +CurFLoad; if (TdTags1.length >= 2) { var TblTag1 = TdTags1[0].parentNode.parentNode.parentNode; var TblTag2 = TdTags1[1].parentNode.parentNode.parentNode; var TblTag3 = TdTags1[TdTags1.length-1].parentNode.parentNode.parentNode; s1 = '' +'<br>' +TblText1s +TblTag1.innerHTML +TblText1e +TblText1s +TblTag2.innerHTML +TblText1e +TblText1s +TblTag3.innerHTML +TblText1e ; NodeNew1.innerHTML = s1; } else { NodeNew1.innerHTML = '' +'<br>' + '\u041e\u0448\u0438\u0431\u043a\u0430\u0021\u0020\u0424\u043e\u0440\u0443\u043c ' +CurFLoad +' \u043f\u0443\u0441\u0442'; } statusElem1.parentNode.insertBefore(NodeNew1, statusElem1); var tmp3 = document.getElementById(AddForumS +CurFLoad); CurFLoad = -1; AddPage1(); } else { var NodeNew1 = document.createElement('div'); NodeNew1.id = AddForumS +CurFLoad; NodeNew1.innerHTML = '' +'<br>' + '\u041e\u0448\u0438\u0431\u043a\u0430\u0021\u0020\u041d\u0435\u0442\u0020\u043e\u0442\u0432\u0435\u0442\u0430\u0020\u043e\u0442\u0020\u0444\u043e\u0440\u0443\u043c\u0430\u0020 ' +CurFLoad +'.'; statusElem1.parentNode.insertBefore(NodeNew1, statusElem1); var tmp3 = document.getElementById(AddForumS +CurFLoad); CurFLoad = -1; AddPage1(); } } } req.open('GET', '/forum.cgi?forum=' +CurFLoad, true); req.send(null); statusElem2.innerHTML = 'Loading' +' \u0444\u043e\u0440\u0443\u043c:' +CurFLoad; } else { statusElem2.innerHTML = '\u0412\u0441\u0435\u0020\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\u0020\u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b.'; } } function getXmlHttp(){ var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); xmlhttp.overrideMimeType('text/html'); } return xmlhttp; } if (IsAddForums) {AddPage1()}; var Veche1 = new Array(); function CalcVeche(IgnS) { function FindOrAdd1(aNick, aText) { var Pt1 = -1; for (var i = 0; i < Veche1.length ; i++) { Ln1 = Veche1[i]; if (aText.toLowerCase() == Ln1[0].toLowerCase()) { Pt1 = i; break; } } if (Pt1 == -1) { var Line1 = new Array(); Line1[0] = aText; Line1[1] = aNick; Veche1[Veche1.length] = Line1; } else { var Line1 = Veche1[Pt1]; var Find1 = false; for (var j = 1; j < Line1.length ; j++) { if (Line1[j] == aNick) { Find1 = true; break; } } if (!Find1) { Line1[Line1.length] = aNick; Veche1[Pt1] = Line1; } } } PTag1 = document.getElementById('P1Vote'); if ((PTag1 != null) && (PTag1.innerHTML != '')) { PTag1.innerHTML = ''; } else { Veche1 = []; if (IgnS == undefined) {IgnS = ''} var Ign = IgnS.split(Delim1); var TbTag = document.getElementsByTagName('table'); for (var i = 0; i < TbTag.length ; i++) { if (TbTag[i].className == "tb") { var TrT = TbTag[i].getElementsByTagName('tr'); if (TrT.length == 0) continue; var BTag = TbTag[i].getElementsByTagName('b'); if (BTag.length == 0) continue; LiTag = TbTag[i].getElementsByTagName('li'); for (var j = 0; j < LiTag.length; j++) { B2Tag = LiTag[j].getElementsByTagName('b'); if (B2Tag.length == 0) continue; if (B2Tag[0] == '') continue; FindOrAdd1(BTag[0].innerHTML, B2Tag[0].innerHTML); } } } if (Veche1.length == 0) { alert('\u041f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0445\u0020\u043d\u0435\u0442\u002e'); } else { for (var k = 0; k < Veche1.length; k++) { for (var i = 0; i < Veche1.length; i++) { var Find1 = false; for (var j = 0; j < Veche1.length; j++) { if (i == j) continue; if (Veche1[i][0]<Veche1[j][0]) { var Line1 = Veche1[i]; Veche1[i] = Veche1[j]; Veche1[j] = Line1; Find1 = true; } } if (!Find1) break; } if (!Find1) break; } VoteCnt1 = 0; for (var j = 1; j < Veche1.length; j++) { if (VoteCnt1 < Veche1[j].length -1) {VoteCnt1 = Veche1[j].length -1}} s2 = ''; for (var i = 0; i < Veche1.length ; i++) { var s3 = ''; var s4 = ''; for (var j = 1; j < Veche1[i].length; j++) { s4 = s4 +' '; s3 = s3 +Veche1[i][j]; if (j != Veche1[i].length-1) {s3 = s3 +', '} } s2 = s2 +'<tr bgcolor=#ffffff><td width=70%>' +Veche1[i][0] +' ( ' +s3 +' ) ' +'</td>'; s2 = s2 +'<td nowrap=nowrap width=5% align=center>' +(Veche1[i].length -1) +'</td>'; s2 = s2 +'<td nowrap=nowrap width=100><font Color=blue ' +'style="background-color:blue;">' +s4 +'</font></td>'; s2 = s2 +'</tr>' } var s1 = '' +'<table class="dats" align=center bgcolor=#A0A0A0 border=0 cellpadding=3' +' cellspacing=1 width=95%><tbody><tr align=center bgcolor=#dddddd>' +'<td width=70%><b>\u0412\u043e\u043f\u0440\u043e\u0441\u0020\u0438\u0020\u043e\u0442\u0432\u0435\u0442\u0020\u0028\u0020\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0432\u0448\u0438\u0435\u0020\u0029</b></td>' +'<td nowrap=nowrap width=5%><b>\u0413\u043e\u043b\u043e\u0441\u043e\u0432</b></td>' +'<td nowrap=nowrap width=100><b>\u0428\u043a\u0430\u043b\u0430</b></td>' +'</tr>' +s2 +'</tbody></table>' +'' ; if (PTag1 == null) { var TbTag1 = document.getElementsByTagName('table'); for (var j = 0; j < TbTag1.length; j++) { if (TbTag1[j].className == 'tb') { PTag1 = document.createElement('p'); PTag1.id = 'P1Vote'; break; } } PTag1.innerHTML = s1; TbTag1[j].parentNode.insertBefore(PTag1, TbTag1[j]); } else { PTag1.innerHTML = s1; } } } } if (isUseVeche) { BTag1 = document.getElementsByTagName('b'); for (var i = BTag1.length -1; i >= 0; i--) { if (BTag1[i].innerHTML == '\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435') { FntTg1 = document.createElement("font"); FntTg1.innerHTML = '<a id=VoteLink1 href=javascript:AddVote1()' +' title="\u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0020\u0432\u0020\u0444\u043e\u0440\u043c\u0443\u0020\u043e\u0442\u0432\u0435\u0442\u0430\u0020\u0431\u043b\u043e\u043a\u0020\u0441\u0020\u0432\u0430\u0448\u0438\u0020\u0433\u043e\u043b\u043e\u0441\u043e\u043c\u0020\u0437\u0430\u0020\u0447\u0442\u043e\u002d\u043b\u0438\u0431\u043e\u002e"' +'>\u0413\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c</a>'; BTag1[i].parentNode.appendChild(FntTg1); document.getElementById('VoteLink1').addEventListener("click", function() {AddVote1()}, false); break; } } } function AddVote1() { TATag1 = document.getElementById('post'); if (TATag1 == null) { TATag1 = document.getElementsByName('post') TATag1 = TATag1[0]; } if (TATag1 == null) { alert('\u0424\u043e\u0440\u043c\u0430\u0020\u043e\u0442\u0432\u0435\u0442\u0430\u0020\u043d\u0435\u0020\u043d\u0430\u0439\u0434\u0435\u043d\u0430\u002e') } else { var s = ''; s = prompt('\u0412\u0432\u0435\u0434\u0438\u0442\u0435\u0020\u0432\u043e\u043f\u0440\u043e\u0441\u0020\u0438\u0020\u043e\u0442\u0432\u0435\u0442\u0020\u0437\u0430\u0020\u043a\u043e\u0442\u043e\u0440\u044b\u0439\u0020\u0432\u044b\u0020\u0445\u043e\u0442\u0438\u0442\u0435\u0020\u043f\u0440\u043e\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c:' +'\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440\u003a\u0020\u041c\u043e\u0451\u0020\u043b\u044e\u0431\u0438\u043c\u043e\u0435\u0020\u0436\u0438\u0432\u043e\u0442\u043d\u043e\u0435\u0020\u002d\u0020\u043a\u043e\u0448\u043a\u0430', s); if(s!=null){ TATag1.value = TATag1.value.substr(0,TATag1.selectionStart) +'' +'[color=#A0A0A0][*][b]' +s +'[/b][/color]' +'\n' +TATag1.value.substr(TATag1.selectionEnd); } } } function InsertSel1() { var LastFindUserName = ''; function FindPrnt1(aNode) { var PrNd1 = aNode.parentNode; if (PrNd1.tagName == undefined) { return PrNd1; } if (PrNd1.tagName.toLowerCase() == 'table') { if (PrNd1.className == "tb") { var TrT = PrNd1.getElementsByTagName('tr'); if (TrT.length != 0) { var BTag = PrNd1.getElementsByTagName('b'); if (BTag.length != 0) { LastFindUserName = BTag[0].innerHTML; return PrNd1; } } } } return FindPrnt1(PrNd1); } function FindRef1(TrNode) { var ATg1 = TrNode.getElementsByTagName('a'); for (var i = ATg1.length -1; i>=0; i--){ if (ATg1[i].href.indexOf('topic.cgi') >= 0) { var s1 = ''; if ((LastFindUserName != '') && (ATg1[i].href != '') && (ATg1[i +1].innerHTML != '')) { s1 = '' +'[url=' +ATg1[i].href +']' +'[b]' +LastFindUserName +'[/b] ' +'[/url]' ; return s1; } } } return ''; } var Nd = FindPrnt1(window.getSelection().getRangeAt(0).startContainer.parentNode); if (Nd.tagName == undefined) { alert('\u0422\u0435\u0433\u0020\u043d\u0435\u0020\u043d\u0430\u0439\u0434\u0435\u043d\u002e') } else { var s1 = FindRef1(Nd); if (s1 == '') { alert('\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0020\u043d\u0435\u0020\u043d\u0430\u0439\u0434\u0435\u043d\u002e') } else { var s2 = window.getSelection().toString(); if (s2 == '') { alert('\u041d\u0438\u0447\u0435\u0433\u043e\u0020\u043d\u0435\u0020\u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e\u002e\u0020\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u0435\u0020\u0442\u0435\u043a\u0441\u0442\u0020\u0438\u0020\u043d\u0430\u0436\u043c\u0438\u0442\u0435\u0020\u0435\u0449\u0451\u0020\u0440\u0430\u0437\u002e') } else { var s2 = '[quote]' +s2 +'[/quote]'; TATag1 = document.getElementById('post'); if (TATag1 == null) { alert('\u0424\u043e\u0440\u043c\u0430\u0020\u043e\u0442\u0432\u0435\u0442\u0430\u0020\u043d\u0435\u0020\u043d\u0430\u0439\u0434\u0435\u043d\u0430\u002e') } else { TATag1.value = TATag1.value.substr(0,TATag1.selectionStart) +'' +s1 +s2 +'\n' +TATag1.value.substr(TATag1.selectionEnd); } } } } } })(); // SIGNATURE CHECKBOX // // $('input[name=signature]').prop('checked', true); // $('input[name=signature]').attr('checked', true); // AUTO_FIX EDITING PANEL // // var fixedpanel = document.getElementById('tags_panel'); // if (document.getElementById('fix_tg_pan') == null) { // $('#tags_panel>img:nth-child(1)').click();} // $('#tags_panel>img:nth-child(1)').trigger('click');} // Variant #2 !!document.getElementById('fix_tg_pan') || document.querySelector('#tags_panel>img:nth-child(1)').click(); // КНОПКА СОХРАНЕНИЯ ТЕКСТА ПОСТА В ФАЙЛ // // for(var i=0, a=document.querySelectorAll(".post"); i<a.length;i++) // a[i].parentNode.firstChild.innerHTML=" <span id='"+i +"' class='lt' style=cursor:hand>Сохранить текст</span> | " + a[i].parentNode.firstChild.innerHTML; // document.addEventListener("click",function(b){b=b.target;if("lt"==b.className)lt(b.id)}); // // function lt(a){ // var c=document.createElement("a"); // var h=new Blob([document.location.href.split("#")[0]+"#"+(+a+1)+"<hr><p>"+document.querySelectorAll(".post")[a].innerHTML],{type:"text/html"}); // c.setAttribute("href",window.URL.createObjectURL(h)); // c.setAttribute("download",new Date().toTimeString().substr(0,8)+".htm"); // c.click(); // c.remove(); // } // MsgPreview Butoon // // (function() { // var elem = document.getElementById('fix_tg_pan'); // if (elem) { // var div = document.createElement('div'); // div.id='MsgPreview'; // var button = document.createElement('button'); // button.innerText = 'MsgPreview'; // //button.onclick = MsgPreviewFn // div.appendChild(button); // elem.appendChild(div); // } // })(); // // // var MsgPreviewFn = (function() { // var getTextarea=function(){var t,ta=document.getElementsByTagName('textarea'); // var tl=ta.length-1; // do{t=ta[tl];tl--} // while(t&&(t.rows<5||t.offsetHeight==0)); // return t // }; // var b,x,l,t,n,h,v,u='ujs_pv'; // b=document.getElementById(u); // if(b){b.parentNode.removeChild(b);return}; // x=navigator.lastFocusedTextArea||getTextarea(); // if(!x)return; // l=x.offsetLeft; // t=x.offsetTop; // n=x; // while(n.offsetParent){ // n=n.offsetParent; // l+=n.offsetLeft; // t+=n.offsetTop; // }; // h=x.value.replace(/</g,'<').replace(/>/g,'>').replace(/%5Cn/g,'<br>').replace(/%5C[url=(.*%3F)%5C](.*%3F)%5C[%5C/url%5C]/gi,'<a href=%5Cx22$1%5Cx22>$2</a>').replace(/%5C[email=(.*%3F)%5C](.*%3F)%5C[%5C/email%5C]/gi,'<a href=%5Cx22mailto:$1%5Cx22>$2</a>').replace(/%5C[(center|left|right)%5C](.*%3F)%5C[%5C/%5C1%5C]/gi,'<div style=%5Cx22text-align: $1%5Cx22>$2</div>').replace(/%5C[((%3F:color|size)=.*%3F)%5C]/gi,'<font $1>').replace(/%5C[font=(.*%3F)%5C]/gi,'<font face=%5Cx22$1%5Cx22>').replace(/%5C[%5C/(color|size|font)%5C]/gi,'</font>').replace(/%5C[(%5C/%3F)quote%5C]/gi,'<$1blockquote>').replace(/%5C[(%5C/%3F)([bius]|code|hr|sup|sub|strike)%5C]/gi,'<$1$2>').replace(/%5C[img%5C](.*%3F)%5C[%5C/img%5C]/gi,'<img src=%5Cx22$1%5Cx22>'); // v=document.createElement('div'); // v.id=u;v.setAttribute('style','position:absolute;left:'+l+'px;top:'+t+'px;height:'+(x.offsetHeight-2)+'px;width:'+(x.offsetWidth-10)+'px;overflow:auto;background:white;padding:0 4px;border:1px solid gray;font:'+getComputedStyle(x,null).font); // v.innerHTML=h;document.documentElement.appendChild(v) // }); // // var MsgPreviewFn = (function(){ // var b,x,l,t,n,h,v; // b=document.getElementById('ujs_pv'); // if(b){b.parentNode.removeChild(b);return}; // x=navigator.lastFocusedTextArea; // l=x.offsetLeft;t=x.offsetTop; // n=x;while(n.offsetParent){ // n=n.offsetParent; // l+=n.offsetLeft; // t+=n.offsetTop; // }; // h=x.value.replace(/</g,'<').replace(/>/g,'>').replace(/\n/g,'<br>').replace(/\[url=(.*?)\](.*?)\[\/url\]/gi,'<a href=\x22$1\x22>$2</a>').replace(/\[email=(.*?)\](.*?)\[\/email\]/gi,'<a href=\x22mailto:$1\x22>$2</a>').replace(/\[(center|left|right)\](.*?)\[\/\1\]/gi,'<div style=\x22text-align: $1\x22>$2</div>').replace(/\[((?:color|size)=.*?)\]/gi,'<font $1>').replace(/\[font=(.*?)\]/gi,'<font face=\x22$1\x22>').replace(/\[\/(color|size|font)\]/gi,'</font>').replace(/\[(\/?)quote\]/gi,'<$1blockquote>').replace(/\[(\/?)([bius]|code|hr|sup|sub|strike)\]/gi,'<$1$2>').replace(/\[img\](.*?)\[\/img\]/gi,'<img src=\x22$1\x22>'); // v=document.createElement('div'); // v.id='ujs_pv'; // v.style='position:absolute;left:'+l+'px;top:'+t+'px;height:'+(x.offsetHeight-2)+'px;width:'+(x.offsetWidth-10)+'px;overflow:auto;background:white;padding:0 4px;border:1px solid gray;font:'+getComputedStyle(x,null).font; // v.innerHTML=h;document.documentElement.appendChild(v) // }); // // var ButtonPreview = document.querySelector('#fix_tg_pan>img:nth-child(25)'); // if (ButtonPreview) { // alert("ButtonPreview - GOOD"); // // ButtonPreview.attachEvent('onclick', MsgPreviewFn); // // ButtonPreview.addEventListener('click', MsgPreviewFn , false); // } //========= // if (UseHideLink) { // s2 = s2 // +'<a class="tpc" title="Hide this block' +'"' // +' name="' +Btag[0].innerHTML +'"' // +' ID=AHideLink' +i // +' href=javascript:HidePost1("' +Btag[0].innerHTML +'")' // +'>[-]</a> ' // ; // } //========= //========= // for(var i=0,a=document.querySelectorAll(".post");i<a.length;i++) // a[i].parentNode.firstChild.innerHTML=" <span id='"+i +"' class='lt' style=cursor:hand>Сохранить текст</span> | " + a[i].parentNode.firstChild.innerHTML; // // document.addEventListener("click",function(b){b=b.target;if("lt"==b.className)lt(b.id)}); // // function lt(a){var c=document.createElement("a"); // h=new Blob([document.location.href.split("#")[0]+"#"+(+a+1)+"<hr><p>"+document.querySelectorAll(".post")[a].innerHTML],{type:"text/html"}); // c.setAttribute("href",window.URL.createObjectURL(h)); // c.setAttribute("download",new Date().toTimeString().substr(0,8)+".htm"); // c.click(); // c.remove()} //========= |
voqabuhe > 03-02-2020 07:03:26 |
NikosColev пишет
Дык и используй Tampermonkey, или ты их сразу две набУхал? |
NikosColev > 03-02-2020 13:08:38 |
voqabuhe, не, две бухнуть в голову не приходило. Какой менеджер буду использовать пока не решил. С остальными скриптами в Greasemonkey проблем не вижу, как минимум, хотелось бы понимать что не так в нем с Ru-Board Helper, но решить проблему было бы лучше. |
voqabuhe > 03-02-2020 13:47:13 |
NikosColev |
NikosColev > 03-02-2020 14:17:49 |
voqabuhe, я использовал Tampermonkey из-за возможности работы в режиме мгновенного инжектирования необходимого для RU AdList JS Fixes, больше такой необходимости нет. Проще, часто не только не хуже. |
voqabuhe > 03-02-2020 14:33:09 |
NikosColev |
NikosColev > 03-02-2020 14:47:42 |
voqabuhe, спасибо за разрешение, буду признателен, если кто выскажется по сути вопроса. |
vending_machine > 04-02-2020 13:09:56 |
Внимание, вопрос знатокам. |
Stkvsky > 07-02-2020 19:07:35 |
vending_machine пишет
Минута пошла |
Acid Crash > 29-03-2020 16:00:35 |
Доброго времени суток. Предисловие. Суть в том, что вкладка Видео(Videos) открывалась автоматический при клике на канал из подписок БЕЗ общего рефреша/релоада страницы. Расширение сейчас переживает не лучшие времена: его переписывают с ноля, скорость разработки не очень быстрая, а со старой версией начались проблемы совместимости. Возможно найдутся знатоки, которые смогут восстановить фичу в более юзабельном виде (БЕЗ общего рефреша/релоада страницы)? P.S. Что-то теги spoiler и noindex отказываются работать... |
_zt > 31-03-2020 16:30:07 |
Acid Crash Наверное именно поэтому происходит рефреш/релоад и не понятно как может быть по другому. |
Acid Crash > 31-03-2020 17:00:33 |
_zt |
Andrey4 > 09-05-2020 08:43:47 |
Подскажите, почему может не срабатывать любой скрипт при старте браузера на домашней странице? // ==UserScript== alert("HELLO"); Домашняя страница любая |
ifln > 09-05-2020 13:58:25 |
Andrey4 пишет
Не заю. Но можно задать задержку. Выделить код Код:// ==UserScript== // @name Hello // @version 1 // @grant none // ==/UserScript== (function(){ setTimeout(function(){ alert("HELLO")(); }, 3000); })(); |
mokujin > 09-05-2020 23:19:05 |
Andrey4, добавь в шапку |
Andrey4 > 11-05-2020 09:08:17 |
ifln пишет
К сожалению не работает. mokujin пишет
Тоже не работает. Пришлось перейти на Tampermonkey, там всё отрабатывает как часы. Спасибо за помощь. |
Mrakobes666 > 04-06-2020 17:36:50 |
всем привет. еще в 2017 году (пост https://forum.mozilla-russia.org/viewtopic.php?pid=733849#p733849) комраду помог некий способ, который не проканал у меня, скрин |
leshiy_odessa > 05-06-2020 12:31:21 |
Mrakobes666 пишет
Я до сих пор им пользуюсь на стареньком 56.0.2. |
Mrakobes666 > 15-06-2020 20:49:26 |
leshiy_odessa дружище, в двух словах подскажи как это реализовать, у мена ток не 56 а квантум и темпермонкей, какая инструкция - создать новый скрипт, вставляю (заменяя то что там типа шаблона) - но ТМ неактивен в этом окне, где Feedbro кстати пока я был на даче изменилось сообщение скрытый текст Заблокировано политикой защиты содержимого При соединении с rutracker.org произошла ошибка. Firefox заблокировал данный способ загрузки этой страницы, так как страница имеет политику защиты содержимого, которая это запрещает. |
leshiy_odessa > 15-06-2020 23:48:43 |
Mrakobes666 пишет
Без понятия. |
Mrakobes666 > 24-06-2020 13:27:08 |
leshiy_odessa пишет
вот что ответил автор расширения (перевод) Этот сайт создается таким образом, что он "обнаруживает", когда он встроен в iframe. Тут уж ничего не поделаешь. как побороть iframe то? |
oleg.sgh > 16-07-2020 09:00:42 |
Встроенный переводчик Firefox показывает панель перевода на...неруских сайтах. Можно сделать аналогичное срабатывание скрипта? Что-бы скрипт срабатывал везде, кроме русскоязычных, или с указанным списков кодов стран. |
CoolCmd > 17-07-2020 14:42:18 |
oleg.sgh |
dreamkz > 17-07-2020 14:45:24 |
CoolCmd пишет
Вот и ответ. А то было непонятно, почему встроенный переводчик подхватывает не все сайты. |
oleg.sgh > 17-07-2020 14:46:05 |
CoolCmd
Спасибо, что пользуетесь API Яндекс.Переводчика. Ищу варианты. |
CoolCmd > 17-07-2020 14:56:08 |
oleg.sgh нужно полноценное расширение, которое переводит по нажатию кнопки на панели браузера. |
oleg.sgh > 17-07-2020 14:58:44 |
CoolCmd |
_zt > 17-07-2020 18:13:13 |
oleg.sgh |
oleg.sgh > 22-07-2020 10:03:43 |
Нужен скрипт - открыть любую ссылку в новой вкладке, на переднем плане (активной). Без клавиш модификаторов и прочих плюшек. |
mokujin > 22-07-2020 11:02:18 |
oleg.sgh скрытый текст Выделить код Код:// ==UserScript== // @name Open links in current tab // @author wOxxOm // @description Open links in current tab regardless of _target or site's preferences. Ctrl-click: background tab, Ctrl-Shift-click: foreground tab, Shift-click: new window, Alt-click: force open in current tab // @namespace http://target._blank.is.retarded // @version 2.2.7 // @include * // @exclude http*coub.com/* // @exclude http*vk.com/* // @exclude http*.userapi.com/* // @exclude http*.youtube.com/* // @exclude http*.googlevideo.com/* // @run-at document-start // @grant GM_openInTab // ==/UserScript== if (window == top) { window.addEventListener('message', function(e) { // some stupid sites choke on object data if (!/^\{/.test(e.data)) return; let data = tryParse(e.data); if (data.name == GM_info.script.name) navigate(data.url); }); } let suppressing, clickedElement, link; window.addEventListener('mousedown', function(e) { clickedElement = e.target; }, true); window.addEventListener('mouseup', function(e) { // Убрал действие на СКМ только ПКМ отслеживаеццо // if (e.button > 1 || e.target != clickedElement) if (e.button != 0 || e.target != clickedElement) return; link = pierceShadow(e); if (!link || (link.getAttribute('href') || '').match(/^(javascript|#|$)/) || !document.contains(link)) return; let b = e.button, c = e.ctrlKey, a = e.altKey, s = e.shiftKey, m = e.metaKey; if (b == 1 || c && !a && !m) // вот здесь надо начинать шаманить, менять условия КМК GM_openInTab(link.href, !s || b == 1); else if (window.chrome && b === 0 && s && !c && !a && !m) link.cloneNode().dispatchEvent(new MouseEvent('click', {shiftKey: true})); else if (!c && !s && !m && !a) { if (link.target == '_blank') link.target = ''; blockWindowOpenAndMutations(link); return; } else return; suppressing = true; prevent(e); }, true); window.addEventListener('click', prevent, true); window.addEventListener('auxclick', prevent, true); function prevent(e) { if (!suppressing) return; e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); setTimeout(function() { suppressing = false; }, 50); } function blockWindowOpenAndMutations(link) { let observer = new MutationObserver(function() { if (link.target == '_blank') { link.removeAttribute('target'); console.log('[Open links in current tab] prevented dynamic target=_blank for', link.href); navigate(link.href); } }); observer.observe(link, {attributes:true, attributeFilter:['target'], characterData:true}); let _open = unsafeWindow.open; let timeout = setTimeout(function() { unsafeWindow.open = _open; observer.disconnect(); }, 50); unsafeWindow.open = exportFunction(function(url, name, features) { if (!features) { console.log('[Open links in current tab] prevented window.open for', url); navigate(link.href); } else { _open(url, name, features); unsafeWindow.open = _open; clearTimeout(timeout); } }, unsafeWindow); } function pierceShadow(e) { let el = e.target; while (el.shadowRoot) el = el.shadowRoot.elementFromPoint(e.clientX, e.clientY); return el.closest('a'); } function navigate(url) { if (window == top) { link = document.createElement('a'); link.href = url; link.dispatchEvent(new MouseEvent('click')); } else { top.postMessage(JSON.stringify({name: GM_info.script.name, url: url}), '*'); } } function tryParse(str) { try { return JSON.parse(str); } catch(e) {} } |
oleg.sgh > 22-07-2020 11:21:24 |
mokujin
Если бы ещё знать что шаманить. В таком виде скрипт не работает. |
Stkvsky > 22-07-2020 13:11:51 |
oleg.sgh Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
_zt > 22-07-2020 13:37:30 |
Acid Crash скрытый текст Выделить код Код:// ==UserScript== // @name YT channel shows Videos // @match https://www.youtube.com/* // @run-at document-start // @license MIT License // @grant none // ==/UserScript== (() => { const RX_CHANNEL_HOME = /^(https?:\/\/www\.youtube\.com\/(user|c|channel)\/[^/]+)(\/?$|\/featured)/; if (RX_CHANNEL_HOME.test(location.href)) { location.href = RegExp.$1 + '/videos'; return; } addEventListener('mousedown', event => { const a = event.target.closest('a'); if (a && RX_CHANNEL_HOME.test(a.href)) { a.href = RegExp.$1 + '/videos'; try { a.data.commandMetadata.webCommandMetadata.url = a.href; } catch (e) {} } }, true); })(); |
oleg.sgh > 22-07-2020 13:52:54 |
Stkvsky скрытый текст Выделить код Код:// ==UserScript== // @name YandexTV // @namespace YTV // @include http*://tv.yandex.ru/* // @version 1 // @grant none // ==/UserScript== function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (hosts.indexOf(anchor.hostname) >= 0) anchor.target = "_blank"; }); |
sn260591 > 22-07-2020 14:59:21 |
oleg.sgh Выделить код Код:// ==UserScript== // @name Open Links In New Tab // @namespace Open Links In New Tab // @include http*://tv.yandex.ru/* // @grant none // @run-at document-start // ==/UserScript== document.addEventListener("click", (e) => { const anchor = e.target.closest("a[href]"); if (anchor) anchor.target = "_blank"; }); |
oleg.sgh > 22-07-2020 15:05:22 |
sn260591 |
leex > 30-08-2020 15:25:49 |
leex пишет
CoolCmd пишет
CoolCmd Сможете ли подправить? |
xrun1 > 30-08-2020 17:02:59 |
leex Вроде так работает. |
leex > 30-08-2020 18:03:46 |
xrun1 Когда кликаешь по ссылке на любое издание на странице с новостями, то можно заметить как текущая страница молниеносно мелькает прокручиваясь вниз и тут же открывается новая вкладка по ссылке на издание |
xrun1 > 30-08-2020 18:51:40 |
leex |
leex > 31-08-2020 09:45:51 |
Я кликаю стандартно: по новости ЛКМ Часто, когда прочту - возвращаюсь на предыдущую открытую вкладку с новостями, но эта страница уже прокручена вниз на другие новости. |
xrun1 > 31-08-2020 13:39:41 |
Код CoolCmd работает только для Янлекс.Новости. Проверил, у меня ничего не прокручивается. Прокручивалось только при клике по линку в конце текущей новости "В источнике", но это я поправил кодом выше. Если Вы используете для чтения новостей другой сайт, то этот скрипт бесполезен. |
leex > 31-08-2020 16:02:51 |
к сожалению прокручивается. скрытый текст // ==UserScript== // @name CoolCmd // @version 1 // @match https://yandex.ru/news/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { if (e.button === 0 && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey && e.target.closest('a[href].news-story__meta')) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); |
xrun1 > 31-08-2020 19:17:46 |
leex скрытый текст Выделить код Код:// ==UserScript== // @name Stop scrolling on Yandex // @author CoolCmd // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=762360#p762360 // @description Не прокручивать страницу в Яндекс.Новости при клике по ссылке "В источнике" // @icon https://yandex.ru/favicon.ico // @version 1 // @match https://yandex.ru/news/* // @match https://yandex.ru/sport/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { // if (e.button === 0 // && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey // && e.target.closest('a[href].news-story__meta')) // { e.stopImmediatePropagation(); e.stopPropagation(); // } }, true ); Если не поможет, попробуйте вообще остановить загрузку страницы, только не знаю, к чему это приведёт. Добавьте строчку window.stop() скрытый текст Других идей у меня нет. |
sandro79 > 31-08-2020 20:35:56 |
xrun1 пишет
Да и у меня тоже проблема с прокруткой на Янлекс.Новости, здесь это происходит, в Подробнее о событии (англичанка гадит ). Я так тоже понимаю, что это глюк Яндекса, когда началось не помню, с тех пор как раз видимо, но у меня он не исчезал По ЛКМ, ссылка открывается в новой вкладке и родительская страница немного прокручивается вниз. По СКМ, ссылка открывается в новой вкладке, но прокрутки страницы не происходит. Записал видео проверки на чистом профиле xrun1 пишет
Ваш скрипт сработал (в Tampermonkey), прокрутки по ЛКМ нет, только перестала работать кнопка "Показать ещё" |
leex > 31-08-2020 21:51:37 |
xrun1 пишет
А по мне так не бред, а отличный скрипт - главное, то что он работает! sandro79 пишет
Подтверждаю. неприятная мелочь sandro79 пишет
Мне кажется, что это не глюк, а злонамеренный маркетинговый прием. |
kabano > 31-08-2020 21:59:56 |
Господа, помогите пожалуйста! -------------/////////////////////// при появлении очередного мерзавца, я просто добавлял эти строки в скрипте и менял номер пользователя раньше все работало, но сейчас на знаки $ ругается - пишет '$' - is nod defined |
xrun1 > 01-09-2020 01:52:31 |
leex, sandro79 скрытый текст Выделить код Код:// ==UserScript== // @name Stop scrolling on Yandex // @author CoolCmd // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=762360#p762360 , https://forum.mozilla-russia.org/viewtopic.php?pid=784579#p784579 // @description Не прокручивать страницу в Яндекс.Новости при клике на ссылку "В источнике" или на ссылках в блоке "Подробнее о событии" // @icon data:image/x-icon;base64,AAABAAIAICAAAAEAIACoEAAAJgAAABAQAAABACAAaAQAAM4QAAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dG30tLSudHR0bzQ0NC+z8/Pwc/Pz8PIyMjHysrKycfHx8zExMTPw8PD0cDAwNTAwMDWvb292by8vNy6urreuLi44ba2tuO2trblsrKy6LKysuqwsLDtra2t8KysrPOsrKz0qqqq+KmpqfqoqKj8AAAAAwAAAAAAAAAAAAAAANLS0rXQ0NC40tLSutDQ0L3Ozs6/zc3NwsrKysXJycnHx8fHysLCws7CwsLQwcHB0sDAwNW9vb3Yurq627m5ud22trbgtra24rS0tOWysrLnsLCw6bCwsOuurq7urKys8aqqqvOqqqr1qamp+KampvoAAAAQAAAAAAAAAAAAAAAA0tLStNHR0bfR0dG40dHRu83Nzb7Nzc3AysrKxMbGxsbExMTKw8PDzMHBwc69vb3Svr6+1Ly8vNa7u7vZuLi427e3t960tLThs7Oz47KysuWwsLDorq6u6qysrO2rq6vuqqqq8qioqPSoqKj2p6en+QAAAB0AAAAAAAAAAAAAAADR0dGy0tLStNHR0bfQ0NC6zs7Ou8rKyr/JycnCx8fHxcTExMjCwsLKwMDAzr6+vtC7u7vTu7u71bq6ute4uLjatra23bS0tN6ysrLhsrKy5K+vr+atra3pra2t66urq+6pqanwqamp86enp/WlpaX3AAAAKwAAAAAAAAAAAAAAANLS0rHR0dGz09PTtc3NzbgzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///ubm51re3t9lUVFTtU1NT7lNTU+9TU1Pwr6+v5a2treesrKzpq6ur7KioqO6np6fxp6en86SkpPYAAAAyAAAABwAAAAAAAAAA0tLSr9HR0bLS0tK0zs7OtjMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+4uLjVtbW12AAAAP8AAAD/AAAA/wAAAP+tra3krKys56urq+ipqanrqKio7aampu+lpaXxo6Oj9QAAADMAAAAWAAAAAAAAAADS0tKu0tLSr9HR0bLPz8+1MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7i4uNO1tbXWtLS02bGxsduwsLDer6+v4K6uruKrq6vlqqqq56ioqOqmpqbrpaWl7qSkpPGjo6PzAAAANAAAACUAAAAAAAAAANPT06zT09Ou0dHRsc/Pz7MzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///tra20rW1tdVRUVHrUVFR7FFRUe1QUFDuUVFR71FRUfBQUFDyUFBQ86ampuqlpaXto6Oj76GhofIAAAA0AAAAMwAAAAEAAAAA0tLSqtPT06zS0tKv0dHRsTMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+zs7PRsrKy1AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/pqam6aOjo+yioqLtoqKi8AAAADUAAAA3AAAADQAAAADT09Oo1NTUq9PT063R0dGwMzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7S0tNCzs7PTsrKy1LCwsNeurq7ZrKys3Kqqqt+oqKjhp6en46ampuakpKToo6Oj6qKiouygoKDvAAAANgAAADgAAAAdAAAAANLS0qbV1dWp0dHRrNPT064zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///s7OzzrCwsNJQUFDpUFBQ6k9PT+tPT0/sUFBQ7U5OTu9OTk7wTk5O8aOjo+ejo6PpoaGh65+fn+0AAAA3AAAAOQAAAC4AAAAA1NTUpdPT06jS0tKq1NTUrDMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+xsbHOsbGx0QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/o6Oj5aKiouegoKDqn5+f7AAAADcAAAA5AAAAPAAAAATT09Ok1NTUptPT06nS0tKrMzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7KyssywsLDPrq6u0a6urtOsrKzWqqqq2KmpqdumpqbdpKSk4KKiouKioqLkn5+f556enuidnZ3rAAAAOAAAADoAAAA8AAAAFNPT06LU1NSl09PTp9PT06kzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///sbGxy6+vr81NTU3nTk5O6E5OTulNTU3rTU1N7ExMTO1MTEzuTExM76KiouOgoKDmnp6e6J6enuoAAAA5AAAAOwAAAD0AAAAm1NTUoNXV1aPU1NSl09PTqDMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+vr6/Kr6+vzAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/oKCg4p+fn+SdnZ3mnJyc6AAAADoAAAA8AAAAPgAAADjU1NSf1NTUodPT06TS0tKm0tLSqdLS0qvS0tKu0tLSsdHR0bLS0tK10NDQuNDQ0LrR0dG80NDQv8/Pz8HPz8/Ez8/PxtDQ0MnPz8/Lz8/Pzs7OztDOzs7Sz8/P1c7OztfOzs7azc3N3M7Ozt/Ozs7hAAAAAAAAAAAAAAAAAAAAANXV1Z3S0tKg1dXVotLS0qXT09On0tLSqtHR0azS0tKv0tLSsdLS0rTS0tK10dHRuNLS0rrQ0NC90dHRwNDQ0MLPz8/F0NDQx9DQ0MnOzs7Mz8/Pzs/Pz9HPz8/Tz8/P1c/Pz9jOzs7bzc3N3c3NzeAAAAAAAAAAAAAAAAAAAAAA09PTnNXV1Z7U1NSh1dXVowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/z8/P1s7OztnPz8/bzs7O3gAAAAAAAAAAAAAAAAAAAADW1taa1dXVndTU1J/U1NShAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/Ozs7Vzs7O187OztrNzc3cAAAAAAAAAAAAAAAAAAAAANXV1ZjU1NSb1dXVndTU1KAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/9DQ0NPOzs7Wz8/P2M7OztsAAAAAAAAAAAAAAAAAAAAA1tbWl9TU1JrV1dWc1dXVntTU1KHT09Oj0tLSptPT06jR0dGr09PTrdLS0q/R0dGy0tLStNHR0bfS0tK50dHRvNHR0b7Pz8/B0dHRw87OzsbQ0NDI0NDQytDQ0MzQ0NDPz8/P0c/Pz9TOzs7Xzs7O2QAAAAAAAAAAAAAAAAAAAADW1taV1dXVmNTU1JrT09Od1dXVntTU1KHT09Ok09PTp9PT06nU1NSr0tLSrtLS0rHR0dGy0tLStdDQ0LjQ0NC60dHRvNDQ0L/Q0NDCz8/PxM/Pz8bQ0NDJz8/Py9DQ0M7Pz8/Qzs7O0s/Pz9XPz8/YAAAAAAAAAAAAAAAAAAAAANbW1pTW1taW1dXVmNbW1pvT09Oe0tLSoNXV1aLS0tKl09PTp9LS0qrT09Os0tLSr9LS0rHS0tK00dHRttHR0bjS0tK70NDQvdHR0cDQ0NDD0NDQxdDQ0MfQ0NDJzs7OzM/Pz87Pz8/Rzs7O1M7OztYAAAAAAAAAAAAAAAAAAAAA19fXktbW1pXV1dWX1NTUmtPT05zV1dWe1NTUodXV1aPS0tKm09PTqNLS0qvT09Ot09PTr9HR0bLS0tK00dHRt9DQ0LrR0dG80NDQvs/Pz8HQ0NDDz8/PxtDQ0MjR0dHLzs7OzdDQ0M/Nzc3Sz8/P1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////8AAAAHAAAABwAAAAcAAAAHAAAAAwAAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA//////////////////////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLSt9HR0bzNzc3CyMjIx8XFxc3CwsLRvb2917m5ud22trbhs7Oz5rCwsOusrKzwqamp9aampvoAAAAFAAAAANDQ0LTS0tK5y8vLv8jIyMTCwsLKv7+/z7y8vNW4uLjat7e33rGxseOurq7oq6ur7qmpqfKmpqb2AAAAFAAAAADS0tKxz8/PtjMz//8zM///MzP//zMz//8zM///uLi41wAAAP8AAAD/rKys5qmpqeqmpqbvo6Oj9AAAACUAAAAA0tLSrtDQ0LMzM///MzP//zMz//8zM///MzP//7W1tdWxsbHar6+v3qysrOOoqKjnpaWl7KOjo/EAAAA0AAAAAtHR0avQ0NCvMzP//zMz//8zM///MzP//zMz//+zs7PSAAAA/wAAAP8AAAD/AAAA/6Ojo+mfn5/vAAAAOAAAABDT09Oo09PTrDMz//8zM///MzP//zMz//8zM///srKy0K2trdSrq6vaqKio3qWlpeOioqLnoKCg6wAAADkAAAAj09PTpNPT06kzM///MzP//zMz//8zM///MzP//7CwsMwAAAD/AAAA/wAAAP8AAAD/oKCg5Z2dnekAAAA6AAAANtTU1KHS0tKm0tLSq9LS0rDS0tK00NDQutHR0b7Q0NDD0NDQyNDQ0M3Ozs7S0NDQ183NzdzOzs7gAAAAAAAAAADT09Oe09PTowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/Pz8/Yz8/P3QAAAAAAAAAA1NTUmtLS0qAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/zs7O1c7OztoAAAAAAAAAANbW1pfV1dWc1NTUodLS0qbU1NSr0tLSr9LS0rTQ0NC60dHRvtHR0cPQ0NDJ0NDQzc7OztLOzs7XAAAAAAAAAADX19eU1dXVmdPT057V1dWj09PTqNPT063R0dGy0dHRt9HR0bvR0dHA0NDQxdDQ0MrPz8/Pzs7O1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAP//AAD//wAA // @version 1 // @match https://yandex.ru/news/* // @match https://yandex.ru/sport/* // @match https://dzen.ru/news/* // @match https://dzen.ru/sport/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let from_group_source = e.target.closest('a[href].mg-snippets-group__source'); // 27.10.2021 источник из группы новостей let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ let subtitle_text = e.target.closest('a[href].news-story__subtitle'); // 16.11.2021 ссылки "текст в подзаголовоке" // let new_redesign1 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_primary.Link'); // 28.12.23 главная ссылка let new_redesign1 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_primary'); // 16.08.2024 // let new_redesign2 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_tertiary.Link'); // 28.12.23 другие ссылки let new_redesign2 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_tertiary'); // 16.08.2024 if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more || subtitle_text || new_redesign1 || new_redesign2) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); Иконку к скрипту для Яндекс.Новости прицепить не смог, она у них в base64. Может потом найду способ, пока иконка Яндекса. kabano Проверить не могу, только предположение. На сайте могли ввести новые правила и символ "$" - знак доллара теперь надо экранировать. Попробуйте перед этим символом везде вставить обратный слэш "\" (без кавычек, разумеется). P.S. И, кстати, это не глюк Яндекса, а вполне сознательная политика. При клике на ссылку экран прокручивается на видимую высоту. Вот код их функции Выделить код Код:function(e) { if (!(/mac os/i.test(navigator.userAgent) ? e.metaKey : e.ctrlKey)) { var t = R.current.clientHeight + R.current.offsetTop + ze.d; t && window.scrollTo(0, t), Object(He.a)(Ze.c.RESET_OFFSET) } } Обновил скрипт 06.12.2024 скрытый текст Выделить код Код:// ==UserScript== // @name Stop scrolling on Dzen (ex Yandex) // @author CoolCmd // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=762360#p762360 , https://forum.mozilla-russia.org/viewtopic.php?pid=784579#p784579 // @description Не прокручивать страницу в новостях Дзен (бывш. Яндексе). Версия от 03.11.2024 // @icon https://dzen.ru/favicon.ico // @version 1.1 // @match https://dzen.ru/news/* // @match https://sportsdzen.ru/news/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { // let new_redesign1 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_primary'); // 16.08.2024 let new_redesign1 = e.target.closest('a[href].news-link-new_desktop.news-link-new_primary'); // 06.12.2024 // let new_redesign2 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_tertiary'); // 16.08.2024 // let new_redesign2 = e.target.closest('a[href].news-redesign-link_desktop.news-redesign-link_secondary'); // 03.11.2024 let new_redesign2 = e.target.closest('a[href].news-link-new_desktop.news-link-new_secondary'); // 06.12.2024 let news_card1 = e.target.closest('a[href].news-site--card-text__cardLink-kh'); // Эта новость в СМИ (3 карточки) let news_card2 = e.target.closest('a[href].news-site--card-horizontal-news-meta__cardLink-22'); // Эта новость в СМИ (список) if (new_redesign1 || new_redesign2 || news_card1 || news_card2) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); |
sandro79 > 01-09-2020 09:15:02 |
xrun1 пишет
Огромное Спасибо! Работает! Побочных последствий вроде не выявлено. А иконка к скрипту и такая сойдёт, главное скрипт работает! |
sn260591 > 01-09-2020 17:11:14 |
kabano пишет
Проще через юблок блокировать Выделить код Код:forum.onliner.by###p93083103 forum.onliner.by##li:has(> div[data-user_id="2095842"]) |
kabano > 01-09-2020 17:35:37 |
sn260591, спасибо! |
leex > 02-09-2020 08:48:12 |
xrun1 |
leex > 19-09-2020 14:26:01 |
xrun1 |
xrun1 > 19-09-2020 15:25:29 |
leex |
leex > 20-09-2020 16:57:31 |
xrun1 |
oleg.sgh > 26-09-2020 17:37:18 |
Некоторые сайты при копировании текста добавляют: |
mokujin > 26-09-2020 20:11:02 |
oleg.sgh тема была тут Удалить ссылки на сайт при копировании текста. Там же старый скрипт. Можно посмотреть что и как там делалось и докрутить. |
oleg.sgh > 26-09-2020 20:22:32 |
mokujin |
leshiy_odessa > 03-10-2020 14:59:18 |
Народ, подскажите как на facebook.com можно порезать URL от лишнего хлама? https://www.facebook.com/mark.solonin.7/posts/3894718980544430?__cft__[0]=AZUkbLF9aucofTpQkQSFMZ7WsrEkrHW6DBgBQ7wLZelKmU_bD1v-WmV32EuYUj-yQH87Up8ShND2GzLCJiHj6RhuEBcTr6MnjrZHRNuh9455a6KTkrqIcxwg28DBc0V5XoYW3xqfz0zRIoDlww5kOXO8&__tn__=%2CO%2CP-R Дело в том, что я сделал в Stylus подкрашивание заголовка в «уже прочитанно» (к примеру 11 сентября в 00:30), но при обновлении страницы URL меняется, но не основная его часть. |
pointer > 03-10-2020 17:51:15 |
Получить без "?" строку URL можно, это . скрытый текст • location.protocol. Определяет протокол или метод. • location.hostname. Определяет имя узла. • location.port. Определяет порт соединения. • location.host. Комбинация двух предыдущих свойств. • location.pathname. Каталог расположения документа на узле и имя файла. • location.hash. Название анкера в документе, если такой определен (всё, что после #). • location.target. Атрибут target ссылки, которая привела к открытию текущего документа. • location.query. Определяет строку запроса. • location.href. Определяет полный URL. • location.search. Параметры строки (всё, что после знака «?»). |
mokujin > 03-10-2020 17:51:40 |
oleg.sgh пишет
Конечно ненаписано. Этот скриптег-гад, может вообще быть в теле страницы прописан в тэгах <script>......мудокод_с_добавлением_своего_мусора_при_копировании.....</script> и никак ты его не "зарэжэшЪ" ... скрытый текст Выделить код Код:// ==UserScript== // @name disable Inline scripts on pages (может делать гадости, ломать, крушить страницы) // @namespace none // @grant none // @include http* // @run-at document-start // ==/UserScript== window.addEventListener('beforescriptexecute', breakBadScripts, false); function breakBadScripts(e) { let script = e.target, flag; let arrAdWords = [ "AdBlockDetected", "AdDelivery.prototype", "adspayformy.site", "trafficjunky.net", "webkitSpeechRecognition", "ExoDetector.domain_base", "ExoLoader.addZone", "requestTrafficJunkyAds", "window.zone_", "abbp1.pw", "ads.exosrv.com", "adfox_ad_pixel", "adfox_shtorka_", "yandexContextAsyncCallbacks", "Ya.Context.AdvManager.render", "window.NREUM||(NREUM={})).loader_config=", "GoogleAnalyticsObject" ]; arrAdWords.forEach( function(adword) { flag = script.text.indexOf(adword) +1; if(flag) { e.preventDefault(); e.stopPropagation(); //e.stopImmediatePropagation(); console.log("Заблокировал скрипт по слову: \"" + adword + "\" \:\n" + script.text.slice(0,220)); // let div = document.getElementById('caa0'); div.style.display='none'; } }); }; |
mokujin > 03-10-2020 18:27:33 |
leshiy_odessa скрытый текст Выделить код Код:// ==UserScript== // @name fb-Remove // @namespace none // @include http*facebook.com/* // @version 2.0.0.2 // @grant none // @run-at document-start // ==/UserScript== window.addEventListener("DOMContentLoaded",utmRemove, false); // нижеследующий ↓ Слушатель убери\закоментируй, если работает и так. Этот нижний, еще и по двойному клику исполнение скрипта добавляет. window.addEventListener("dblclick", utmRemove, false); function utmRemove() { const regex = new RegExp(/(http.*facebook.com.*)\?__cft__.*/gi); let arrLinks = Array.from(document.links), locS = regex.test(location.search); if( locS && history.replaceState ) { history.replaceState( null,'', location.href.replace(regex, '$1') ) }; // console.log("Кол-во ссылок : " + arrLinks.length); // убрать из ссылок страницы if (arrLinks.length > 1) { arrLinks.forEach( function(lnk) { if( lnk.href.match(regex) ) { let newHref = lnk.href.replace(regex, '$1'), oRel = lnk.getAttribute('rel'); oRel = oRel ? ( oRel + ' ' ) : ''; lnk.setAttribute('rel', oRel + 'redirect'); lnk.setAttribute('replacedurl', lnk.href); lnk.title = ( lnk.title ? ( lnk.title + ' - ' ) : '' ) + 'Old URL: \n' + decodeURIComponent(lnk.href); lnk.href = newHref; } }) }; }; |
leshiy_odessa > 03-10-2020 18:55:15 |
mokujin пишет
Сам URL имеет первозданный вид, а вот в открытой вкладке уже обрезанный. Смысл в том, чтобы Firefox открывал уже обрезанный URL, а иначе он не зафиксируем «уже открытый» URL. |
mokujin > 03-10-2020 19:40:46 |
leshiy_odessa пишет
хах, так не выйдет, ЕЯПП. Это тебе нужно расширение аналог PureURL чтоб перехватывались и изменялись запросы. |
voqabuhe > 04-10-2020 02:48:18 |
Это только у меня переодически слетают все скрипты в Tampermonkey? Как их быстро восстановить из резервного профиля. А ещё лучше если кто-нибудь подскажет, как предотвратить слетание. |
xrun1 > 05-10-2020 02:48:52 |
voqabuhe |
mike2003 > 09-11-2020 11:20:43 |
Можно ли с помощью Greasemonkey перенести кнопку YouTube? скрытый текст |
oleg.sgh > 06-12-2020 09:59:57 |
Умельцы, нужен автоматический развертыватель комментариев. Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст. |
zzzephire > 06-12-2020 11:39:42 |
oleg.sgh пишет
Если есть Stylus/Stylish, то можно просто создать стиль для сайта. Комментарии будут развёрнутыми |
oleg.sgh > 06-12-2020 12:48:50 |
zzzephire |
leshiy_odessa > 06-12-2020 15:39:24 |
oleg.sgh пишет
У меня на Tampermonkey такое : скрытый текст Выделить код Код:// ==UserScript== // @name LJ open spoiler // @namespace spoilers // @icon http://www.livejournal.com/favicon.ico // @icon64 http://www.livejournal.com/favicon.ico // @include http://*.livejournal.com/* // @include https://*.livejournal.com/* // @run-at document-idle // @grant none // ==/UserScript== /* https://forum.mozilla-russia.org/viewtopic.php?pid=731242#p731242 */ /* --- НАЖИМАЕМ КНОПКУ "Развернуть" --- */ var spoilers = document.getElementsByClassName('ljcut-link-expand'); for (var i = 0; i < spoilers.length; i++) spoilers[i].click(); /* --- УБРАЛ КНОПКУ "Свернуть" --- */ function HideClass() { var i, elems = document.getElementsByClassName("ljcut-expanded"); for (i = elems.length-1; i >= 0; i--) elems[i].style.display = "none"; setTimeout(HideClass, 1000); } setTimeout(HideClass, 1); Выделить код Код:/* https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851 */ // ==UserScript== // @name Dyrty (d3.ru) open spoiler comments // @namespace comments // @icon https://d3.ru/static/i/logo_retina_alpha.png // @icon64 https://d3.ru/static/i/logo_retina_alpha.png // @include https://*.d3.ru/* // @include http://*.d3.ru/* // @version 1 // @run-at document-idle // @grant none // ==/UserScript== function ClickComment() { var i, links = document.getElementsByClassName('b-comment__expand-button'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ClickComment, 1000); } setTimeout(ClickComment, 1); Выделить код Код:/* https://forum.mozilla-russia.org/viewtopic.php?pid=733851#p733851 */ // ==UserScript== // @name Youtube comments open spoiler [New Design] // @namespace comments // @icon https://www.youtube.com/favicon.ico // @icon64 https://www.youtube.com/favicon.ico // @description Разворачиваем всё комментарии // @include https://youtube.com/* // @include http://youtube.com/* // @include https://www.youtube.com/* // @include http://www.youtube.com/* // @version 1 // @run-at document-end // @grant none // ==/UserScript== /* ----- "Читать дальше" ----- */ function ReadMoreComments() { /* ----- Выбрали кнопку [Читать дальше] и смотрим её класс ----- */ var i, links = document.getElementsByClassName('more-button style-scope ytd-comment-renderer'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ReadMoreComments, 10000); } setTimeout(ReadMoreComments, 1); /* ----- "Показать ответы" ----- */ function ExpandComments() { var i, links = document.getElementsByClassName('style-scope ytd-comment-replies-renderer'); for (i = links.length-1; i >= 0; i--) links[i].click(); setTimeout(ExpandComments, 10000); } setTimeout(ExpandComments, 1); |
mokujin > 06-12-2020 16:33:58 |
... а у меня такоев в GM (попытался сделать универсальный - вписуешь домен где-что открывать и сё): скрытый текст Выделить код Код:// ==UserScript== // @name Spoilers_open // @namespace comments // @include http* // @version 1 // @run-at document-end // @grant none // ==/UserScript== setTimeout( ()=> document.addEventListener("scroll", moreSpoilerOpen, false) , 2000 ); function moreSpoilerOpen() { let dom = document.domain.replace(/^www./i,'').split('.').reverse(), arrLinks = []; dom = dom[1] + "." + dom[0]; switch(dom) { case "xvideos.com": arrLinks = Array.from( document.getElementsByClassName('btn btn-default show-more') ); break; case "newsland.com": arrLinks.push(document.getElementById('comment-folding') ); break; default: return; } if( arrLinks.length > 0 ) arrLinks.forEach( (lnk)=> lnk.click() ); document.removeEventListener("scroll", moreSpoilerOpen, false); }; |
oleg.sgh > 06-12-2020 19:51:12 |
leshiy_odessa, mokujin |
xrun1 > 07-12-2020 14:05:41 |
leshiy_odessa |
leshiy_odessa > 07-12-2020 15:47:26 |
xrun1 пишет
Приведите пример URL + скрин того что вы хотите развернуть. |
xrun1 > 07-12-2020 17:15:56 |
leshiy_odessa |
mokujin > 07-12-2020 20:51:33 |
xrun1 пишет
ну, код будет такой(для моего выше скрипта добавить к остальным) Ну или переделай отдельным, по-примеру leshiy_odessa : скрытый текст Выделить код Код:.......... case "shakko.ru": arrLinks = Array.from( document.querySelectorAll( "A[class='b-pseudo']") ); // console.log("кол-во элементов на shakko.ru : " + arrLinks.length); arrLinks.forEach( (el)=> { if ( el.innerHTML == 'Expand' ) el.click() } ); break; return; .......... ... ниччё лучше не придумал. Дёргаеццо неприятно при открытии. Т.к. ЖЖ куча внешних видов(тем) то там и разные селекторы у каждого. А спойлер-а, какого-нить универсального селектора, у них тама нету. Везде 'A' () Всеядного, думаю, сделать низзя\сложно. хотя хз. |
xrun1 > 09-12-2020 04:23:12 |
mokujin |
mokujin > 09-12-2020 10:50:07 |
Пример из другого скрипта: скрытый текст Выделить код Код:window.addEventListener('keydown', function(e) { if(e.ctrlKey && e.altKey) { switch(e.keyCode) { // для клавиши '+' keyCodde 107 http://www.w3.org/2002/09/tests/keys.html case 107: moreSpoilerOpen(); break; } } }, false); ... не проверял. 09-12-2020 10:54:08 09-12-2020 11:08:14 Выделить код Код:case "pornolab.net": case "rutracker.org": arrLinks = Array.from(document.getElementsByClassName('sp-head folded')); break; или oszone: Выделить код Код:case "forum.oszone.net": arrLinks = Array.from(document.getElementsByClassName('spoiler-head')); break; А тут в этихваших ЖЖ, типа того, что коменты пишутся в страницу при клике, их кагбе и нету вначале. И изза этого дергается. |
xrun1 > 10-12-2020 00:50:32 |
mokujin |
Raf-9600 > 12-02-2021 16:43:37 |
На некоторых сайтах есть кнопка переключения языка интерфейса на русский язык. Как сделать чтобы при заходе на такой сайт сразу активировать событие этой кнопки? Допустим в случае с https://www.privat24.ua/ |
zzzephire > 12-02-2021 22:23:48 |
Raf-9600 скрытый текст Выделить код Код:// ==UserScript== // @name Set-RU-Lang // @namespace mystuff // @version 1 // @description Переключение интерфейса на русский язык // @author VasyaPupkin // @match https://*.privat24.ua/* // @grant none // ==/UserScript== setTimeout(()=>{ let t = document.querySelector('div.languages > a:nth-child(2)'); if(t) { t.click(); return; } let c = document.querySelectorAll('button.sc-iAyFgw.eeJZse'); if(c[3].title != 'Русский') { c[3].click(); let cc = (document.querySelectorAll('button.sc-jhAzac.YbrrD')); let i = cc[0].title == 'Русский' ? 0 : 1; cc[i].click(); } }, 2000); Raf-9600 пишет
У каждого сайта будет своя логика. Под каждый нужен будет индивидуальный подход. |
Бумбик > 13-02-2021 01:56:08 |
на www.privat24.ua можно упростить Выделить код Код:document.addEventListener('load', () => { localStorage.lang = 'ru'; location.reload(); }) |
sn260591 > 13-02-2021 10:43:48 |
Можно ещё проще и без перезагрузки страницы: Выделить код Код:// ==UserScript== // @name privat24.ua rus // @match *://*.privat24.ua/* // @run-at document-start // ==/UserScript== localStorage.lang = 'ru'; Но в подобном скрипте смысл есть только в том случае, если куки сайта удаляются. |
Raf-9600 > 13-02-2021 20:21:39 |
Бумбик zzzephire пишет
Да, я догадывался. Мне бы просто в общих чертах логику понять. |
Бумбик > 13-02-2021 21:07:09 |
Raf-9600 пишет
Видимо особенности Greasemonkey, нет доступа к локальному хранилищу. Тут не надо выяснять что делает каждая строчка, нужно на базовом уровне знать javascript и работу с DOM, тогда это будет просто |
Raf-9600 > 13-02-2021 21:56:48 |
Бумбик пишет
А вы как это освоили? Книги? Гугл? Видео уроки? Бумбик пишет
Я тестировал в Tampermonkey, он вроде как позиционируется более функциональным. |
Бумбик > 13-02-2021 22:39:17 |
Raf-9600 пишет
Все вместе, для базового уровня времени и знаний много не надо Raf-9600 пишет
Тут скорей разницы нет какое дополнение, сама лиса ограничивает им доступ к localstorage в целях безопасности |
zzzephire > 13-02-2021 23:17:04 |
Бумбик пишет
Там хитро сделан код сайта. Скрипт отработает, но если делать что необходимо после определенного таймаута. В данном случае бесполезны директивы @run-at. Использовал tampermonkey скрытый текст Выделить код Код:// ==UserScript== // @name Set-RU-Lang // @namespace mystuff // @version 1 // @description Переключение интерфейса на русский язык // @author VasyaPupkin // @match https://*.privat24.ua/* // @grant none // ==/UserScript== if(localStorage.lang == 'ru') return; setTimeout(()=>{ localStorage.lang = 'ru'; location.reload(); }, 2000); |
Raf-9600 > 14-02-2021 00:55:14 |
zzzephire Выделить код Код:setTimeout(()=>{ let t = document.querySelector('div.languages > a:nth-child(2)'); if(t) { t.click(); return; } localStorage.lang = 'ru'; }, 0); |
xrun1 > 14-02-2021 02:50:56 |
Raf-9600 |
Азат55555 > 23-03-2021 20:40:28 |
... |
Ciber SLasH > 29-04-2021 13:03:42 |
Приветствую всех! |
CoolCmd > 29-04-2021 14:01:59 |
Ciber SLasH нужно делать настоящее расширение браузера (webextension) и в webrequest api менять содержимое страницы. |
Ciber SLasH > 30-04-2021 06:34:03 |
webRequest-ом тоже не получилось модифицировать код страницы так, чтобы HTML-код при сохранении страницы был изменён. |
mokujin > 30-04-2021 13:32:12 |
Ciber SLasH В CB это делалось так: скрытый текст Выделить код Код:// Добавить адрес наверху страницы и открыть диалог сохранения страницы ............. function savePage() { var sURL = gURLBar.value; content.document.body.innerHTML = "<table width=100%><tr><td align=left><small><a target=_blank href=" + sURL + ">"+ sURL + "</a></small>\n</td></tr></table>" + content.document.body.innerHTML; saveDocument(window.content.document); }; №52 ... ну и эта №31 |
Ciber SLasH > 01-05-2021 01:03:18 |
С кнопки CB тоже не попадает с сохраняемую страницу изменения. |
leex > 23-10-2021 18:01:33 |
https://forum.mozilla-russia.org/viewto … 79#p784579 xrun1 пишет
xrun1, приветствую! Могу ли попросить поправить наш код? |
xrun1 > 25-10-2021 13:02:33 |
leex скрытый текст Выделить код Код:// ==UserScript== // @name Stop scrolling on Yandex // @author CoolCmd // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=762360#p762360 , https://forum.mozilla-russia.org/viewtopic.php?pid=784579#p784579 // @description Не прокручивать страницу в Яндекс.Новости при клике на ссылку "В источнике" или на ссылках в блоке "Подробнее о событии" // @icon data:image/x-icon;base64,AAABAAIAICAAAAEAIACoEAAAJgAAABAQAAABACAAaAQAAM4QAAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dG30tLSudHR0bzQ0NC+z8/Pwc/Pz8PIyMjHysrKycfHx8zExMTPw8PD0cDAwNTAwMDWvb292by8vNy6urreuLi44ba2tuO2trblsrKy6LKysuqwsLDtra2t8KysrPOsrKz0qqqq+KmpqfqoqKj8AAAAAwAAAAAAAAAAAAAAANLS0rXQ0NC40tLSutDQ0L3Ozs6/zc3NwsrKysXJycnHx8fHysLCws7CwsLQwcHB0sDAwNW9vb3Yurq627m5ud22trbgtra24rS0tOWysrLnsLCw6bCwsOuurq7urKys8aqqqvOqqqr1qamp+KampvoAAAAQAAAAAAAAAAAAAAAA0tLStNHR0bfR0dG40dHRu83Nzb7Nzc3AysrKxMbGxsbExMTKw8PDzMHBwc69vb3Svr6+1Ly8vNa7u7vZuLi427e3t960tLThs7Oz47KysuWwsLDorq6u6qysrO2rq6vuqqqq8qioqPSoqKj2p6en+QAAAB0AAAAAAAAAAAAAAADR0dGy0tLStNHR0bfQ0NC6zs7Ou8rKyr/JycnCx8fHxcTExMjCwsLKwMDAzr6+vtC7u7vTu7u71bq6ute4uLjatra23bS0tN6ysrLhsrKy5K+vr+atra3pra2t66urq+6pqanwqamp86enp/WlpaX3AAAAKwAAAAAAAAAAAAAAANLS0rHR0dGz09PTtc3NzbgzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///ubm51re3t9lUVFTtU1NT7lNTU+9TU1Pwr6+v5a2treesrKzpq6ur7KioqO6np6fxp6en86SkpPYAAAAyAAAABwAAAAAAAAAA0tLSr9HR0bLS0tK0zs7OtjMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+4uLjVtbW12AAAAP8AAAD/AAAA/wAAAP+tra3krKys56urq+ipqanrqKio7aampu+lpaXxo6Oj9QAAADMAAAAWAAAAAAAAAADS0tKu0tLSr9HR0bLPz8+1MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7i4uNO1tbXWtLS02bGxsduwsLDer6+v4K6uruKrq6vlqqqq56ioqOqmpqbrpaWl7qSkpPGjo6PzAAAANAAAACUAAAAAAAAAANPT06zT09Ou0dHRsc/Pz7MzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///tra20rW1tdVRUVHrUVFR7FFRUe1QUFDuUVFR71FRUfBQUFDyUFBQ86ampuqlpaXto6Oj76GhofIAAAA0AAAAMwAAAAEAAAAA0tLSqtPT06zS0tKv0dHRsTMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+zs7PRsrKy1AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/pqam6aOjo+yioqLtoqKi8AAAADUAAAA3AAAADQAAAADT09Oo1NTUq9PT063R0dGwMzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7S0tNCzs7PTsrKy1LCwsNeurq7ZrKys3Kqqqt+oqKjhp6en46ampuakpKToo6Oj6qKiouygoKDvAAAANgAAADgAAAAdAAAAANLS0qbV1dWp0dHRrNPT064zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///s7OzzrCwsNJQUFDpUFBQ6k9PT+tPT0/sUFBQ7U5OTu9OTk7wTk5O8aOjo+ejo6PpoaGh65+fn+0AAAA3AAAAOQAAAC4AAAAA1NTUpdPT06jS0tKq1NTUrDMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+xsbHOsbGx0QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/o6Oj5aKiouegoKDqn5+f7AAAADcAAAA5AAAAPAAAAATT09Ok1NTUptPT06nS0tKrMzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//7KyssywsLDPrq6u0a6urtOsrKzWqqqq2KmpqdumpqbdpKSk4KKiouKioqLkn5+f556enuidnZ3rAAAAOAAAADoAAAA8AAAAFNPT06LU1NSl09PTp9PT06kzM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///sbGxy6+vr81NTU3nTk5O6E5OTulNTU3rTU1N7ExMTO1MTEzuTExM76KiouOgoKDmnp6e6J6enuoAAAA5AAAAOwAAAD0AAAAm1NTUoNXV1aPU1NSl09PTqDMz//8zM///MzP//zMz//8zM///MzP//zMz//8zM///MzP//zMz//+vr6/Kr6+vzAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/oKCg4p+fn+SdnZ3mnJyc6AAAADoAAAA8AAAAPgAAADjU1NSf1NTUodPT06TS0tKm0tLSqdLS0qvS0tKu0tLSsdHR0bLS0tK10NDQuNDQ0LrR0dG80NDQv8/Pz8HPz8/Ez8/PxtDQ0MnPz8/Lz8/Pzs7OztDOzs7Sz8/P1c7OztfOzs7azc3N3M7Ozt/Ozs7hAAAAAAAAAAAAAAAAAAAAANXV1Z3S0tKg1dXVotLS0qXT09On0tLSqtHR0azS0tKv0tLSsdLS0rTS0tK10dHRuNLS0rrQ0NC90dHRwNDQ0MLPz8/F0NDQx9DQ0MnOzs7Mz8/Pzs/Pz9HPz8/Tz8/P1c/Pz9jOzs7bzc3N3c3NzeAAAAAAAAAAAAAAAAAAAAAA09PTnNXV1Z7U1NSh1dXVowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/z8/P1s7OztnPz8/bzs7O3gAAAAAAAAAAAAAAAAAAAADW1taa1dXVndTU1J/U1NShAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/Ozs7Vzs7O187OztrNzc3cAAAAAAAAAAAAAAAAAAAAANXV1ZjU1NSb1dXVndTU1KAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/9DQ0NPOzs7Wz8/P2M7OztsAAAAAAAAAAAAAAAAAAAAA1tbWl9TU1JrV1dWc1dXVntTU1KHT09Oj0tLSptPT06jR0dGr09PTrdLS0q/R0dGy0tLStNHR0bfS0tK50dHRvNHR0b7Pz8/B0dHRw87OzsbQ0NDI0NDQytDQ0MzQ0NDPz8/P0c/Pz9TOzs7Xzs7O2QAAAAAAAAAAAAAAAAAAAADW1taV1dXVmNTU1JrT09Od1dXVntTU1KHT09Ok09PTp9PT06nU1NSr0tLSrtLS0rHR0dGy0tLStdDQ0LjQ0NC60dHRvNDQ0L/Q0NDCz8/PxM/Pz8bQ0NDJz8/Py9DQ0M7Pz8/Qzs7O0s/Pz9XPz8/YAAAAAAAAAAAAAAAAAAAAANbW1pTW1taW1dXVmNbW1pvT09Oe0tLSoNXV1aLS0tKl09PTp9LS0qrT09Os0tLSr9LS0rHS0tK00dHRttHR0bjS0tK70NDQvdHR0cDQ0NDD0NDQxdDQ0MfQ0NDJzs7OzM/Pz87Pz8/Rzs7O1M7OztYAAAAAAAAAAAAAAAAAAAAA19fXktbW1pXV1dWX1NTUmtPT05zV1dWe1NTUodXV1aPS0tKm09PTqNLS0qvT09Ot09PTr9HR0bLS0tK00dHRt9DQ0LrR0dG80NDQvs/Pz8HQ0NDDz8/PxtDQ0MjR0dHLzs7OzdDQ0M/Nzc3Sz8/P1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////8AAAAHAAAABwAAAAcAAAAHAAAAAwAAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA//////////////////////KAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0tLSt9HR0bzNzc3CyMjIx8XFxc3CwsLRvb2917m5ud22trbhs7Oz5rCwsOusrKzwqamp9aampvoAAAAFAAAAANDQ0LTS0tK5y8vLv8jIyMTCwsLKv7+/z7y8vNW4uLjat7e33rGxseOurq7oq6ur7qmpqfKmpqb2AAAAFAAAAADS0tKxz8/PtjMz//8zM///MzP//zMz//8zM///uLi41wAAAP8AAAD/rKys5qmpqeqmpqbvo6Oj9AAAACUAAAAA0tLSrtDQ0LMzM///MzP//zMz//8zM///MzP//7W1tdWxsbHar6+v3qysrOOoqKjnpaWl7KOjo/EAAAA0AAAAAtHR0avQ0NCvMzP//zMz//8zM///MzP//zMz//+zs7PSAAAA/wAAAP8AAAD/AAAA/6Ojo+mfn5/vAAAAOAAAABDT09Oo09PTrDMz//8zM///MzP//zMz//8zM///srKy0K2trdSrq6vaqKio3qWlpeOioqLnoKCg6wAAADkAAAAj09PTpNPT06kzM///MzP//zMz//8zM///MzP//7CwsMwAAAD/AAAA/wAAAP8AAAD/oKCg5Z2dnekAAAA6AAAANtTU1KHS0tKm0tLSq9LS0rDS0tK00NDQutHR0b7Q0NDD0NDQyNDQ0M3Ozs7S0NDQ183NzdzOzs7gAAAAAAAAAADT09Oe09PTowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/Pz8/Yz8/P3QAAAAAAAAAA1NTUmtLS0qAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/zs7O1c7OztoAAAAAAAAAANbW1pfV1dWc1NTUodLS0qbU1NSr0tLSr9LS0rTQ0NC60dHRvtHR0cPQ0NDJ0NDQzc7OztLOzs7XAAAAAAAAAADX19eU1dXVmdPT057V1dWj09PTqNPT063R0dGy0dHRt9HR0bvR0dHA0NDQxdDQ0MrPz8/Pzs7O1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAMAAP//AAD//wAA // @version 1 // @match https://yandex.ru/news/* // @match https://yandex.ru/sport/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ if (in_source || published_in || from_agency || more_about_events || in_source_sport || about_events_show_more) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); Или дайте ссылку на которой я смогу увидеть прокручивание. |
leex > 26-10-2021 05:39:23 |
xrun1 |
xrun1 > 26-10-2021 16:03:08 |
leex |
voqabuhe > 26-10-2021 17:08:12 |
leex |
leex > 26-10-2021 17:12:11 |
xrun1 26-10-2021 17:18:51 voqabuhe пишет
Спасибо за ваш совет, но я посмотрел краткий мануал к нему и ужаснулся. |
leex > 26-10-2021 23:04:55 |
xrun1 пишет
У меня в разделе "подробнее о событии" скрипт как и у Вас работает. |
xrun1 > 27-10-2021 04:23:36 |
leex скрытый текст Выделить код Код:let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let from_group_source = e.target.closest('a[href].mg-snippets-group__source'); // 27.10.2021 источник из группы новостей let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more) |
leex > 27-10-2021 18:08:41 |
xrun1 |
leex > 16-11-2021 03:57:27 |
Приветствую xrun1! скрытый текст Выделить код Код:let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let from_group_source = e.target.closest('a[href].mg-snippets-group__source'); // 27.10.2021 источник из группы новостей let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ let subtitle_text = e.target.closest('a[href].news-story__subtitle-text'); // ссылки "текст в подзаголовоке" if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more || subtitle_text) добавил строку Выделить код Код:let subtitle_text = e.target.closest('a[href].news-story__subtitle-text'); // ссылки "текст в подзаголовоке" и добавил subtitle_text в нижней строке Выделить код Код:if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more || subtitle_text) Но почему то не срабатывает. Происходит автопрокрутка. |
xrun1 > 16-11-2021 10:39:14 |
leex скрытый текст <a class="news-story__subtitle" href="https://ria.ru/20211116/blinken-1759218617.html?utm_source=yxnews&utm_medium=desktop" Замените у себя news-story__subtitle-text --> news-story__subtitle Удачи! |
leex > 16-11-2021 16:37:59 |
xrun1 скрытый текст Выделить код Код:. let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let from_group_source = e.target.closest('a[href].mg-snippets-group__source'); // 27.10.2021 источник из группы новостей let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ let news_story_subtitle = e.target.closest('a[href].news-story__subtitle'); // ссылка "В подзаголовоке" if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more || news_story_subtitle) |
ibb1386 > 16-11-2021 18:51:40 |
Ребят, нужен скрипт на блокировку рекламы, на Твиче. |
leex > 16-11-2021 19:52:58 |
ibb1386 скрытый текст попробуйте RU AdList JS Fixes |
ibb1386 > 19-11-2021 23:45:14 |
leex |
soll > 02-12-2021 16:17:36 |
Подскажите, у кого-нибудь есть скрипт для показа полного названия видео в списке youtube ? Раньше было расширение которое показывало полное название видео, но оно умерло в связи с переездом на квантум, новое никто не сделал. Можно это как-то решить ? А то название видео обрезаются и поиском по странице пользоваться неудобно. |
sachka > 02-12-2021 19:32:58 |
Подскажите, у кого-нибудь есть скрипт для показа полного названия видео в списке youtube ? Раньше было расширение которое показывало полное название видео, но оно умерло в связи с переездом на квантум, новое никто не сделал. Можно это как-то решить ? А то название видео обрезаются и поиском по странице пользоваться неудобно. |
soll > 02-12-2021 22:31:43 |
sachka, отлично, спасибо большое. Нужно только внутри скрипта поправить. Если кто знает, может есть более легкие, а то здесь много ненужных функций. |
xrun1 > 03-12-2021 00:20:40 |
soll скрытый текст Youtube Stylus |
soll > 03-12-2021 01:14:57 |
xrun1, работает, спасибо. |
soll > 01-06-2022 11:33:14 |
Скажите, у меня стоял скрипт для возвращение фавиконов в поиске гугл, недавно всё отвалилось. Не могли бы вы подсказать нормальный скрипт или что поправить для старого. Очень не хватает Выделить код Код:// ==UserScript== // @name Фавиконы Google // @description Добавляет фавиконы в поиск Google. // @include https://www.google.ru/* // @include https://www.google.ru/*/* // @include https://www.google.com/* // @include https://www.google.com/*/* // @run-at document-start // @version 2.7 // @licence Apache 2.0 // @icon http://nv.github.com/faviconize-google.js/chrome/icon_48.png // @grant GM_addStyle // @namespace http://userscripts.ru/js/faviconize-google/ // ==/UserScript== (function(){ (typeof GM_addStyle != 'undefined' ? GM_addStyle : function addStyle(css) { var head = document.getElementsByTagName('head')[0]; var style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode(css)); head.appendChild(style); })(".favicon {\ padding-right: 4px;\ vertical-align: middle;\ border: none;\ }\ #res .favicon {\ left: -20px;\ position: absolute;\ top: 2px;\ z-index: 9;\ }\ div.vsc {\ position: relative;\ }\ div.vsc img.favicon {\ position: absolute !important;\ top: 0;\ left: -20px !important;\ }\ "); var FAVICON_GRABBER = 'https://www.google.com/s2/favicons?domain='; // 'http://favicon.yandex.net/favicon/' var QUERY = '#ires .g h3 a:not([id]), #res .g a:not([id])'; /** * @param {NodeList} links */ function add_favicons_to(links) { for (var i=0; i<links.length; i++) { if (links[i].firstChild.className != 'favicon') { var host = links[i].href.replace(/.*https?:\/\//, '').replace(/\/.*$/,''); var img = document.createElement('IMG'); img.src = FAVICON_GRABBER + host; img.width = '16'; img.height = '16'; img.className = 'favicon'; links[i].insertBefore(img, links[i].firstChild); } } } add_favicons_to(document.querySelectorAll(QUERY)); /** * Debounce function from http://code.google.com/p/jquery-debounce/ */ function debounce(fn, timeout, invokeAsap, context) { if (arguments.length == 3 && typeof invokeAsap != 'boolean') { context = invokeAsap; invokeAsap = false; } var timer; return function() { var args = arguments; if(invokeAsap && !timer) { fn.apply(context, args); } clearTimeout(timer); timer = setTimeout(function() { if(!invokeAsap) { fn.apply(context, args); } timer = null; }, timeout); }; } document.addEventListener('DOMNodeInserted', debounce(function handleNewFavicons(event){ if (event.target.className != 'favicon') { add_favicons_to(document.querySelectorAll(QUERY)); } }, 500) , false); })(); |
vitalii201 > 01-06-2022 11:48:49 |
soll, FaviconizeGoogle 1.8.4, с Greasy Fork, работает без проблем в Tampermonkey. |
xrun1 > 01-06-2022 11:55:55 |
soll |
soll > 01-06-2022 12:40:28 |
vitalii201 пишет
у меня он работает почему-то крайне нестабильно. Иногда не грузит фавиконы и почему-то требует доступ к странице, раньше такого не наблюдал. xrun1 пишет
спасибо, попробовал, вроде работает нормально. Пока остановлюсь на нём, буду наблюдать. |
leex > 06-06-2022 13:27:41 |
Привет! |
kokoss > 06-06-2022 17:15:31 |
leex пишет
Яндекс-дзен лучше заблокировать правилом для UBO |
leex > 06-06-2022 17:41:35 |
kokoss пишет
Так и есть. скрытый текст |
_zt > 22-06-2022 20:27:41 |
По поводу вкладки канала по умолчанию. |
xrun1 > 02-07-2022 12:17:04 |
Старенький (переехал со мной с Opera Presto 14 на ), но до сих пор рабочий код для выделения части ссылки. скрытый текст Выделить код Код:// ==UserScript== // @name Select text from links // @namespace http://operafan.net/forum/index.php?topic=11837.msg205482#msg205482 // @version 0.1 // @description Выделение текста ссылки // @match * // @grant none // @run-at document-start // ==/UserScript== /* Конфликтует со скриптом AllowCopy-ContextMenu. Поэтому сделал букмарклет для конфликтного */ // Удалить мусорные параметры из адресной строки браузера. (function utmRemove() { if (/[?&]utm_/.test(location.search) && history.replaceState){ history.replaceState(null,'', location.href.replace(/[?&]utm_.*/,'')); } })(); // Выделение ссылок (function olls() { function OPLLS() { this.init.apply(this, arguments); } OPLLS.prototype = { handleEvent: function (e) { switch (e.type) { case 'mouseup': if (!getSelection() .toString()) break; // console.log('mouseup'); var t = e.target; while (t.nodeName != 'A' && t.nodeName != 'HTML') t = t.parentNode; if (!t.href) { // console.log('uninit'); this.uninit(); } break; case 'click': if (!getSelection() .toString()) { // console.log('clicked and uninit'); this.uninit(); break; } e.preventDefault(); e.stopPropagation(); // console.log('selected and uninit'); this.uninit(); } }, init: function (e) { var t = e.target; if (t.nodeName == 'IMG') return ; while (t.nodeName != 'A' && t.nodeName != 'HTML') t = t.parentNode; if (!t.href) return ; t.draggable = false; // console.log('OK'); document.addEventListener('mouseup', this, true); document.addEventListener('click', this, true); }, uninit: function () { document.removeEventListener('mouseup', this, true); document.removeEventListener('click', this, true); } } document.addEventListener('mousedown', function (e) { if (e.button != 0 || e.ctrlKey || e.altKey || e.shiftKey) return ; new OPLLS(e); }, false); })(); |
xrun1 > 03-07-2022 10:55:56 |
Сделал скрипт, который копирует выделенное в буфер обмена и выводит сообщение в правом нижнем углу окна. Если стоит предыдущий, копирует и часть ссылки. скрытый текст Выделить код Код:// ==UserScript== // @name Autocopy // @namespace https://addons.mozilla.org/en-US/firefox/addon/copy-on-select/ // @version 0.2.3.1 // @description Copy On Select // @author spyrosoft & erosman (Copy PlainText) & Death_INN (from https://forum.ru-board.com) & xrun1 https://forum.mozilla-russia.org/viewtopic.php?pid=800380#p800380 // @match * // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADbklEQVQ4T2WTe0xTVxzHv6elbytdeThBxMkjbLNoonMDiRONUR5Lli2ZZj7SkCWbj4iEPzaZWY0RybKhISNBE900RPfIzBzJQqZGx3Cgwsok9kKDpRasKClQ+gQu9x5/l4SkyU7yyf0l5/f73vM7399hSFicc7bhIyHLaJLLc1YYipkqaf0j1z/VPdf2dFNanJAT85WY2Sr6X+FqsdSarH23sMBckpdnfj1nldGQk62H3z+LI0dPnRD+PvUj5fqI2f8J7Kt7MvzejtTXrKl6JOnVMBkAzgGjFogGRVTtr77o6m65YM0tEwqKGleqpGH/3auV0yREWeCs4dJ4aOvONHMsBmgZoEsCpoIcMzMcy8wiHF/fdMXj833FxRvWSUyzputeX13nlbKLVDxFiKzxaiC0rTTFLDym9iSgtz+CQGAWWekMma+qkZ6uxfIMA0xLVDDyedgPnG/tun64mYoFIsLOXQuEtm5OMXufyvCPzWJoKIhNJVbol2ih0zGo1YBGRadTkCRUHfzmj+62Y01U3EMEmeO8323/MCPf7eNwe2JIs0hY/eZSagGgWoTDMsFhXarCqnQZn9Z8d+P2TzWNtPVgQaD27OPfvvos5/2xCeDWvRiCoTgqd6ZAGJIhihwmHV2oHtDTafIzGeqb2x+2OCq+pGLF2km293jfiW9rbY65eTV6BRHuJ2HsqrTSV15wQ5LoQsm85SkMb2QzfP+7Z6Luk8LDc/H4XyTwnH1Q3fbWEfu2jpJCo6H1hojgdBS7yy0QPBK0GgaN0ge5EyBn3i5QwzUSna8+VNXwsPOXy7TjpS3o6i9722t2Z5eOjAPXO8KwV5jgHmWYjnAkmxgMNBMGakOJjXqOky3tna1NB+umno04FQHVx5//vH3jO1t+GPUMTPh8Yd54fIeNQ4PJkIw4HV/5exLNR1Yag221Ck6fhF/bu9oaDmw+qggoy2gyWfKj0WBuRm7RsuYLbfVlRanJfXSRmdR7qoWspHYicxzDL0RpcGQq3NPdcb/pi12nFwXIZRgJM6GuOeM8Xbt/7T6LmcE7LnHBOxHpfzQ4Jvx31zPovDPsdt4ZlWX5BeUOLAokvhFWbj+7Ns+20RF46tII/958PtD7p28mFiKjMUkECCUOLsxBYmVCTO5jBbGS0CwmK3NF0KsBjRlEQn4JjqVp072tMtsAAAAASUVORK5CYII= // @grant none // @run-at document-start // ==/UserScript== 'use strict'; // CB & uc.js https://forum.mozilla-russia.org/viewtopic.php?pid=803196#p803196 // define const remove_selection = false; // после копирования снимать выделение (true) const beeper = false; // проигрывать beep (true) const plain_text = false; // без форматирования (true) const balloon = true; // всплывающее сообщение const balloon_text = 'Скопировано в буфер обмена!'; const balloon_time = 1000; // время сообщения на экране; 1 секунда = 1000 миллисекунд var balloon_bgc = "blue"; // фон "всплывашки" if (plain_text) balloon_bgc = "black"; // чёрный цвет всплывающего окна при копировании без форматирования function peBeep() { var snd = new Audio("data:audio/wav;base64,//uQRAAAAWMSLwUIYAAsYkXgoQwAEaYLWfkWgAI0wWs/ItAAAGDgYtAgAyN+QWaAAihwMWm4G8QQRDiMcCBcH3Cc+CDv/7xA4Tvh9Rz/y8QADBwMWgQAZG/ILNAARQ4GLTcDeIIIhxGOBAuD7hOfBB3/94gcJ3w+o5/5eIAIAAAVwWgQAVQ2ORaIQwEMAJiDg95G4nQL7mQVWI6GwRcfsZAcsKkJvxgxEjzFUgfHoSQ9Qq7KNwqHwuB13MA4a1q/DmBrHgPcmjiGoh//EwC5nGPEmS4RcfkVKOhJf+WOgoxJclFz3kgn//dBA+ya1GhurNn8zb//9NNutNuhz31f////9vt///z+IdAEAAAK4LQIAKobHItEIYCGAExBwe8jcToF9zIKrEdDYIuP2MgOWFSE34wYiR5iqQPj0JIeoVdlG4VD4XA67mAcNa1fhzA1jwHuTRxDUQ//iYBczjHiTJcIuPyKlHQkv/LHQUYkuSi57yQT//uggfZNajQ3Vmz+Zt//+mm3Wm3Q576v////+32///5/EOgAAADVghQAAAAA//uQZAUAB1WI0PZugAAAAAoQwAAAEk3nRd2qAAAAACiDgAAAAAAABCqEEQRLCgwpBGMlJkIz8jKhGvj4k6jzRnqasNKIeoh5gI7BJaC1A1AoNBjJgbyApVS4IDlZgDU5WUAxEKDNmmALHzZp0Fkz1FMTmGFl1FMEyodIavcCAUHDWrKAIA4aa2oCgILEBupZgHvAhEBcZ6joQBxS76AgccrFlczBvKLC0QI2cBoCFvfTDAo7eoOQInqDPBtvrDEZBNYN5xwNwxQRfw8ZQ5wQVLvO8OYU+mHvFLlDh05Mdg7BT6YrRPpCBznMB2r//xKJjyyOh+cImr2/4doscwD6neZjuZR4AgAABYAAAABy1xcdQtxYBYYZdifkUDgzzXaXn98Z0oi9ILU5mBjFANmRwlVJ3/6jYDAmxaiDG3/6xjQQCCKkRb/6kg/wW+kSJ5//rLobkLSiKmqP/0ikJuDaSaSf/6JiLYLEYnW/+kXg1WRVJL/9EmQ1YZIsv/6Qzwy5qk7/+tEU0nkls3/zIUMPKNX/6yZLf+kFgAfgGyLFAUwY//uQZAUABcd5UiNPVXAAAApAAAAAE0VZQKw9ISAAACgAAAAAVQIygIElVrFkBS+Jhi+EAuu+lKAkYUEIsmEAEoMeDmCETMvfSHTGkF5RWH7kz/ESHWPAq/kcCRhqBtMdokPdM7vil7RG98A2sc7zO6ZvTdM7pmOUAZTnJW+NXxqmd41dqJ6mLTXxrPpnV8avaIf5SvL7pndPvPpndJR9Kuu8fePvuiuhorgWjp7Mf/PRjxcFCPDkW31srioCExivv9lcwKEaHsf/7ow2Fl1T/9RkXgEhYElAoCLFtMArxwivDJJ+bR1HTKJdlEoTELCIqgEwVGSQ+hIm0NbK8WXcTEI0UPoa2NbG4y2K00JEWbZavJXkYaqo9CRHS55FcZTjKEk3NKoCYUnSQ0rWxrZbFKbKIhOKPZe1cJKzZSaQrIyULHDZmV5K4xySsDRKWOruanGtjLJXFEmwaIbDLX0hIPBUQPVFVkQkDoUNfSoDgQGKPekoxeGzA4DUvnn4bxzcZrtJyipKfPNy5w+9lnXwgqsiyHNeSVpemw4bWb9psYeq//uQZBoABQt4yMVxYAIAAAkQoAAAHvYpL5m6AAgAACXDAAAAD59jblTirQe9upFsmZbpMudy7Lz1X1DYsxOOSWpfPqNX2WqktK0DMvuGwlbNj44TleLPQ+Gsfb+GOWOKJoIrWb3cIMeeON6lz2umTqMXV8Mj30yWPpjoSa9ujK8SyeJP5y5mOW1D6hvLepeveEAEDo0mgCRClOEgANv3B9a6fikgUSu/DmAMATrGx7nng5p5iimPNZsfQLYB2sDLIkzRKZOHGAaUyDcpFBSLG9MCQALgAIgQs2YunOszLSAyQYPVC2YdGGeHD2dTdJk1pAHGAWDjnkcLKFymS3RQZTInzySoBwMG0QueC3gMsCEYxUqlrcxK6k1LQQcsmyYeQPdC2YfuGPASCBkcVMQQqpVJshui1tkXQJQV0OXGAZMXSOEEBRirXbVRQW7ugq7IM7rPWSZyDlM3IuNEkxzCOJ0ny2ThNkyRai1b6ev//3dzNGzNb//4uAvHT5sURcZCFcuKLhOFs8mLAAEAt4UWAAIABAAAAAB4qbHo0tIjVkUU//uQZAwABfSFz3ZqQAAAAAngwAAAE1HjMp2qAAAAACZDgAAAD5UkTE1UgZEUExqYynN1qZvqIOREEFmBcJQkwdxiFtw0qEOkGYfRDifBui9MQg4QAHAqWtAWHoCxu1Yf4VfWLPIM2mHDFsbQEVGwyqQoQcwnfHeIkNt9YnkiaS1oizycqJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU="); snd.play(); } function alertTimeout(mymsg, mysecs, mybgcolor) { var myelement = document.createElement("div"); myelement.setAttribute("style","background-color: " + mybgcolor + ";color: white;width: 220px;height: 30px;position: fixed;bottom: 2px;right: 2px;margin: auto;border: 1px solid #ffd700;font-family: verdana;font-size: 12px;display: flex; align-items: center; justify-content: center; text-align: center; z-index: 99999;"); myelement.innerHTML = mymsg; document.body.appendChild(myelement); setTimeout(function() { myelement.parentNode.removeChild(myelement); if (remove_selection) document.getSelection().removeAllRanges(); // для IE8- document.selection.empty(); }, mysecs); } function autoCopy(e) { var any_text = document.getSelection().toString(); if (any_text != '') { if (plain_text) { // alert( 'без форматирования' ); var result1 = any_text.replace(/[\r\n]+/g, '\n'); any_text = result1.replace(/[ \t\f\v]+/g, ' '); navigator.clipboard.writeText(any_text); } else { // alert( 'с форматированием' ); document.execCommand('copy'); // планируется отключение https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand#browser_compatibility // navigator.clipboard.writeText(any_text); } if (beeper) peBeep(); if (balloon) alertTimeout(balloon_text, balloon_time, balloon_bgc); // e.preventDefault(); // e.stopPropagation(); } } // если надо только по Ctrl+С или из меню заменить 'click' на 'copy' window.addEventListener('click', autoCopy, true); P.S. Режим "без форматирования" актуален только на некоторых сайтах и только для - удаляет лишние разрывы строк. Например, здесь. P.P.S. Если не заработает. Tampermonkey рекомендует использовать // @match для списка включённых сайтов. Я это сделал, но у себя выбрал второй способ. 2 решения. 1. Заменить в заголовке скрипта // @match на // @include, но будет жёлтый треугольник предупреждения. 2. В настройках скрипта вручную добавить * (звёздочку), как на скрине. скрытый текст |
leex > 20-01-2024 22:45:14 |
xrun1 пишет
xrun1 Когда "Яндекс Новости" переехали на Дзен, я поправил наш код для Дзена и немного для Риа — он корректно работал до последнего времени. Сейчас же они что-то изменили и наш код не действует. Вот наш код для "Дзен Новости". скрытый текст // ==UserScript== // @name Stop scrolling on Dzen.News // @author CoolCmd // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=762360#p762360 , https://forum.mozilla-russia.org/viewtopic.php?pid=784579#p784579 // @description Не прокручивать страницу в Дзен.Новости при клике на ссылку "В источнике" или на ссылках в блоке "Подробнее о событии" // @icon https://yastatic.net/s3/web4static/_/v2/ZcejnfbLE_TlMK13nS41mdC4A88.png // @version 1 // @match https://dzen.ru/news/* // @match https://dzen.ru/news/story/* // @match https://dzen.ru/sport/* // @match https://ria.ru/* // @grant none // @run-at document-start // ==/UserScript== 'use strict'; window.addEventListener( 'click', e => { let in_source = e.target.closest('a[href].mg-story__meta'); // ссылка "В источнике" let published_in = e.target.closest('a[href].mg-story__doc-reference'); // ссылка в блоке "С чего всё началось" типа "опубликовал в Instagram" let from_agency = e.target.closest('a[href].mg-snippet__agency-info'); // ссылка в блоке "С чего всё началось" типа источник let from_group_source = e.target.closest('a[href].mg-snippets-group__source'); // 27.10.2021 источник из группы новостей let more_about_events = e.target.closest('a[href].mg-snippet__url'); // ссылки "Подробнее о событии" let in_source_sport = e.target.closest('a[href].news-story__meta.link'); // ссылка "В источнике" для /sport/ let about_events_show_more = e.target.closest('a[href].news-card-snippet__info-link'); // ссылки "Подробнее о событии" для /sport/ let news_story_subtitle = e.target.closest('a[href].news-story__subtitle'); // ссылка "В подзаголовоке" if (in_source || published_in || from_agency || from_group_source || more_about_events || in_source_sport || about_events_show_more || news_story_subtitle) { e.stopImmediatePropagation(); e.stopPropagation(); } }, true ); |
xrun1 > 20-01-2024 23:24:09 |
leex |
leex > 21-01-2024 02:11:12 |
xrun1 Магия! |
rubel > 22-01-2024 05:19:03 |
xrun1 пишет
Что-то он не работает у меня, подключенный в Tampermonkey. |
xrun1 > 22-01-2024 11:31:25 |
rubel скрытый текст Выделить код Код:// ==UserScript== // @name Autocopy // @namespace https://addons.mozilla.org/en-US/firefox/addon/copy-on-select/ // @version 0.2 // @description Copy On Select // @author spyrosoft & erosman (Copy PlainText) & xrun1 // @match * // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADbklEQVQ4T2WTe0xTVxzHv6elbytdeThBxMkjbLNoonMDiRONUR5Lli2ZZj7SkCWbj4iEPzaZWY0RybKhISNBE900RPfIzBzJQqZGx3Cgwsok9kKDpRasKClQ+gQu9x5/l4SkyU7yyf0l5/f73vM7399hSFicc7bhIyHLaJLLc1YYipkqaf0j1z/VPdf2dFNanJAT85WY2Sr6X+FqsdSarH23sMBckpdnfj1nldGQk62H3z+LI0dPnRD+PvUj5fqI2f8J7Kt7MvzejtTXrKl6JOnVMBkAzgGjFogGRVTtr77o6m65YM0tEwqKGleqpGH/3auV0yREWeCs4dJ4aOvONHMsBmgZoEsCpoIcMzMcy8wiHF/fdMXj833FxRvWSUyzputeX13nlbKLVDxFiKzxaiC0rTTFLDym9iSgtz+CQGAWWekMma+qkZ6uxfIMA0xLVDDyedgPnG/tun64mYoFIsLOXQuEtm5OMXufyvCPzWJoKIhNJVbol2ih0zGo1YBGRadTkCRUHfzmj+62Y01U3EMEmeO8323/MCPf7eNwe2JIs0hY/eZSagGgWoTDMsFhXarCqnQZn9Z8d+P2TzWNtPVgQaD27OPfvvos5/2xCeDWvRiCoTgqd6ZAGJIhihwmHV2oHtDTafIzGeqb2x+2OCq+pGLF2km293jfiW9rbY65eTV6BRHuJ2HsqrTSV15wQ5LoQsm85SkMb2QzfP+7Z6Luk8LDc/H4XyTwnH1Q3fbWEfu2jpJCo6H1hojgdBS7yy0QPBK0GgaN0ge5EyBn3i5QwzUSna8+VNXwsPOXy7TjpS3o6i9722t2Z5eOjAPXO8KwV5jgHmWYjnAkmxgMNBMGakOJjXqOky3tna1NB+umno04FQHVx5//vH3jO1t+GPUMTPh8Yd54fIeNQ4PJkIw4HV/5exLNR1Yag221Ck6fhF/bu9oaDmw+qggoy2gyWfKj0WBuRm7RsuYLbfVlRanJfXSRmdR7qoWspHYicxzDL0RpcGQq3NPdcb/pi12nFwXIZRgJM6GuOeM8Xbt/7T6LmcE7LnHBOxHpfzQ4Jvx31zPovDPsdt4ZlWX5BeUOLAokvhFWbj+7Ns+20RF46tII/958PtD7p28mFiKjMUkECCUOLsxBYmVCTO5jBbGS0CwmK3NF0KsBjRlEQn4JjqVp072tMtsAAAAASUVORK5CYII= // @grant none // @run-at document-start // ==/UserScript== 'use strict'; // CB & uc.js https://forum.mozilla-russia.org/viewtopic.php?pid=803196#p803196 // define const remove_selection = false; // после копирования снимать выделение (true) const plain_text = false; // без форматирования (true) const balloon = true; // всплывающее сообщение function alertTimeout(mymsg, mysecs) { var myelement = document.createElement("div"); myelement.setAttribute("style","background-color: blue;color: white;width: 220px;height: 30px;position: fixed;bottom: 2px;right: 2px;margin: auto;border: 1px solid #ffd700;font-family: verdana;font-size: 12px;display: flex; align-items: center; justify-content: center; text-align: center;"); myelement.innerHTML = mymsg; document.body.appendChild(myelement); setTimeout(function() { myelement.parentNode.removeChild(myelement); if (remove_selection) document.getSelection().removeAllRanges(); // для IE8- document.selection.empty(); }, mysecs); } // если надо только по Ctrl+С или из меню заменить 'mouseup' на 'copy' window.addEventListener ( 'mouseup', e => { const any_text = document.getSelection().toString(); if (any_text != '') { if (plain_text) { // alert( 'без форматирования' ); var result1 = any_text.replace(/[\r\n]+/g, '\n'); var result2 = result1.replace(/[ \t\f\v]+/g, ' '); navigator.clipboard.writeText(result2); } else { // alert( 'с форматированием' ); document.execCommand('copy'); } if (balloon) alertTimeout('Скопировано в буфер обмена!', 1000); // 1 секунда = 1000 миллисекунд e.preventDefault(); e.stopPropagation(); } }, false ); |
rubel > 23-01-2024 05:56:18 |
xrun1 |
xrun1 > 24-01-2024 00:41:20 |
rubel скрытый текст P.S. Вроде, поиск гугл сейчас сам показывает иконки у сайтов, Faviconize не нужен. |
rubel > 24-01-2024 04:26:15 |
xrun1 |
Ultima2m > 05-03-2024 15:22:53 |
Привет всем. |
Farby > 05-03-2024 16:19:31 |
Ultima2m пишет
Это не скрипт, это настройки Middlemouse.paste |
Ultima2m > 06-03-2024 06:35:39 |
Farby пишет
О, спасибо, заработало. А Blink Selected сломали? |
leex > 15-05-2024 22:12:14 |
Добрый день! Есть прикольный скрипт с закадровым переводом от яндекса. Встраивается в поддерживаемые браузерные плееры, в том числе и Ютуб. Но при работающем скрипте, при движении курсора по окну плеера постоянно маячит - то появляясь, то исчезая, кнопка переводчика. Было бы здорово держать эту кнопку скрытой и при необходимости показывать ее. |
soll > 23-05-2024 14:10:14 |
Предлагаю обратиться к автору скрипта, например, на предмет добавления в настройки кнопки появления. не думаю, что он откажет. |
leex > 25-05-2024 03:24:43 |
Это в далеких планах на неопределенное будущее. |
_zt > 25-05-2024 09:40:37 |
leex |
leex > 26-05-2024 17:45:57 |
_zt пишет
Попросил автора несжатый скрипт или стиль. скрытый текст
Автор написал
скрытый текст https://github.com/ilyhalight/voice-over-translation/tree/master/src скрытый текст Чтобы не быть испорченным телефоном https://github.com/ilyhalight/voice-over-translation/issues/606#issuecomment-2132152836 |
_zt > 26-08-2024 19:57:28 |
leex |
xrun1 > 26-09-2024 02:59:49 |
Продублирую скрипт здесь. скрытый текст Выделить код Код:// ==UserScript== // @name Copy image with Ctrl+C (copy) // @namespace https://forum.mozilla-russia.org/viewtopic.php?pid=811018#p811018 Firefox Browser // @version 1.0 // @description Copy the image from Firefox browser using the keyboard shortcut Ctrl+C // @author xrun1 // @match https://*/* // @match file:///*/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACAElEQVQ4jcWTPWtUQRSGnzlncvcj2UgMRtj4AcEmEEhhpYViITbapRHSaCF2/gshjX/BRi2CjYUQFFHsLRWRICokQhZiiJq79+49cyzuLnGLgJ0vDAPzDs85M7wH/rfC2sOnvvmjxN0RwDxQ+cgWhAGGIAJm1Hc0QRVY6CTix92SF3M3xqhz2uNS6yVv86vs2Ikjq1dbz4iigaYM0Qm6us3r+fOo5FhqcWXrHdvWrf2/lSCqI8GgGSNNCWQxsjK1jkoOFlDJWZlaJxv6YytGPEB0BcVAEpqg592xQj3vMjH06zb0sAMLSEiJTCIZSiYNnherbPxepQxtNvqrbBQ3acZIRkZLS5ZPr3F5cYX5mVeAEO48eOIfFq4xO/2GTvsLZcrY3Vtmr38Rca+fk5R29o2lM7dpZT1IYNH4tXGX2Gl94sLSfTI5IJliBxWnGk6RT7Ozf53d8hbt9mfOnbyHMqDsA66ECjoT74mt7CtVKLAiUh04RRGociiLfTrlY45PPqJ1bALMSQMwV0JwUnLEnZj/TOTfDRUhVUbZd9KgTlJ7pkFQY9BPECAEJbpjIRESVJUQAcr9VH/rUNpQokGRl2iAFECjQnBSqGGeQLAaADaekdIoR2kbnbmhaQSrd68gdqcW0c02OkqaCWCYgBj1HKgdzgGgCJaM2cmzR8b8n/UHcLLgLSViuSsAAAAASUVORK5CYII= // @grant none // ==/UserScript== (function() { 'use strict'; // получаем адресную строку var stringPathName = window.location.pathname; // убираем сдвоенные слэши, бывают такие https://www.eurokdj.com//images/singles/c/sin_corona-the_rhythm_of_the_night.jpg stringPathName = stringPathName.trim() .replace('//', '/'); // ищем позицию последней точки var count = stringPathName.lastIndexOf('.'); // проверяем, есть точка? длина больше, чем позиция последней точки? if (count <= 0) { return; } else if (stringPathName.length <= count + 1) { return; } // получаем расширение var img_ext = stringPathName.substring(count + 1); // список допустимых расширений const array_images = ['bmp', 'gif', 'ico','jpeg', 'jpg', 'png', 'svg', 'webp']; // gif - копируется текущий кадр; svg не работает, можно убрать // есть полученное расширение в списке? if (!array_images.includes(img_ext)) return; // код скопирован отсюда ==>> https://openjavascript.info/2022/09/27/how-to-copy-an-image-to-the-clipboard-with-vanilla-javascript/ <<== const img = new Image(); const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); // Ctrl+A var ctrl_a = false; document.addEventListener('keydown', function(event) { if (event.code == 'KeyA' && (event.ctrlKey || event.metaKey)) { if (!ctrl_a) ctrl_a = true; } }); // Ctrl+C document.addEventListener('keydown', function(event) { if (event.code == 'KeyC' && (event.ctrlKey || event.metaKey)) { if (ctrl_a) { event.preventDefault(); copyToClipboard(stringPathName); } else { alertTimeout("Only the link was copied!", 1000, "blue"); navigator.clipboard.writeText(window.location); } } }); // снимаем выделение кликом в любом месте и убираем признак, что Ctrl+A нажато document.addEventListener('click', function(event) { ctrl_a = false; }); // Ждём нажатия Ctrl+C // document.addEventListener('copy', function(event) { // copyToClipboard(stringPathName); //}); function writeToCanvas(src) { return new Promise((res, rej) => { img.src = src; img.onload = function() { canvas.width = img.naturalWidth; canvas.height = img.naturalHeight; ctx.drawImage(img,0,0) canvas.toBlob((blob) => { res(blob); }, 'image/png'); } }); } async function copyToClipboard(src) { const image = await writeToCanvas(src); try { await navigator.clipboard.write([ new ClipboardItem({ [image.type]: image, }) ]); // console.log("Success"); alertTimeout("Successful image copying!", 1000, "blue"); } catch(err) { console.log("Copy failed: " + err); } } // Выводит сообщение об успешном копировании; неуспешное запишется в лог консоли (теоретически...) function alertTimeout(mymsg, mysecs, mybgcolor) { var myelement = document.createElement("div"); var L_msg = window.innerWidth/2 - 100; var T_msg = window.innerHeight/2 - 15; myelement.setAttribute("style","background-color: " + mybgcolor + "; color: white; width: 200px; height: 30px; position: fixed; left: " + L_msg + "px;" + "top: " + T_msg + "px; margin: auto; border: 1px solid #ffd700; font-family: verdana; font-size: 12px; display: flex;" + "align-items: center; justify-content: center; text-align: center; opacity: 0.6; z-index: 99999;"); myelement.innerHTML = mymsg; document.body.appendChild(myelement); setTimeout(function() { myelement.parentNode.removeChild(myelement); }, mysecs); } })(); |
dinn > 28-09-2024 14:08:49 |
xrun1 не тестил, но на http://*/* navigator.clipboard работать не будет |
xrun1 > 28-09-2024 17:13:52 |
dinn пишет
Спасибо, Вы правы, упустил этот момент. |
dinn > 28-09-2024 17:28:39 |
xrun1 можно вкрутить GM.setClipboard. Вроде в новой версии идет уже из короби, т.е. не нужно прописки через @grant, либо как-то в скрипте задействовать doCommand("cmd_copy") |