Форумы Форум www.proxomitron.ru
Все о программе Proxomitron
Главная  • FAQ для форума  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Личные сообщения  •  Вход
 Замена куска html кода на сайте
 Сайт -> Форумы » Общие вопросы
Следующая тема
Предыдущая тема

Новая тема  Ответить
Автор Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Ср, Ноя 11 2015 14:56 Цитировать |  |  | 

Есть кусок кода:

Код:
onclick="getTrueRandomInteger(document.getElementById('true-random-integer-generator-min').value, document.getElementById('true-random-integer-generator-max').value);


нужно заменить на:

Код:
document.getElementById('true-random-integer-generator-result').innerHTML = '<img src="/util/cp/images/ajax-loader.gif">';



Match = Вставляю (?<=onclick=")[\w\W]*?value\);
но что то не работает.
К началу Профиль Сообщение Отправить e-mail
Alex Qwerty
Gold Member
Gold Member


Зарегистрирован: 20.07.2007
Сообщения: 204

СообщениеДобавлено: Чт, Ноя 12 2015 09:20 Цитировать |  |  | 

Тут другой синтаксис - смотри "Text Matching Language".
К началу Профиль Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Вс, Ноя 15 2015 20:16 Цитировать |  |  | 

Alex Qwerty писал(а):
Тут другой синтаксис - смотри "Text Matching Language".
русского перевода нету случайно, т.к. синтаксисами у меня сложно все.
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вс, Ноя 15 2015 20:59 Цитировать |  |  | 

Русский хелп где-то был, хоть и староватый...

Но тут всё проще. Открываешь редактор фильтров, создаёшь новый, называешь понятно, вставляешь нужные куски в поля Match и Replace, подправляешь размер буфера (если надо), сохраняешь. В отличие от регэкспов, тут не надо изгаляться с каждым html-символом -- большинство и так прокатит, причём с дополнительными эффектами (см. парсинг пробелов, кавычек, знака "равно" и т.д.) В приведённом примере достаточно заэскейпить только скобки и только в Match: заменить на \(\).
К началу Профиль Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Вс, Ноя 15 2015 21:32 Цитировать |  |  | 

chAlx писал(а):
Русский хелп где-то был, хоть и староватый...

Но тут всё проще. Открываешь редактор фильтров, создаёшь новый, называешь понятно, вставляешь нужные куски в поля Match и Replace, подправляешь размер буфера (если надо), сохраняешь. В отличие от регэкспов, тут не надо изгаляться с каждым html-символом -- большинство и так прокатит, причём с дополнительными эффектами (см. парсинг пробелов, кавычек, знака "равно" и т.д.) В приведённом примере достаточно заэскейпить только скобки и только в Match: заменить на \(\).


т.е. так прописать

Match = "getTrueRandomInteger\(\)document.getElementById\(\)'true-random-integer-generator-min'\(\).value, document.getElementById\(\)'true-random-integer-generator-max'\(\).value\(\);"

Replace = "document.getElementById('true-random-integer-generator-result').innerHTML = '<img src="/util/cp/images/ajax-loader.gif">';"


еще такой вариант:
Match = "<onclick=">,</">)"
Replace = "onclick="document.getElementById('true-random-integer-generator-result').innerHTML = '<img src="/util/cp/images/ajax-loader.gif">';"
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Пн, Ноя 16 2015 10:56 Цитировать |  |  | 

asgard:

В конфиг лезть вообще не обязательно -- всё можно быстро сделать в GUI. Даже скопировать кусок конфига, относящийся к фильтру, в буфер обмена или обратно (по правому клику на названии фильтра в списке).

Получится как-то так:

Код:
Name = "My new onclick replacer"
URL = "asgardgamez.net/"
Active = TRUE
Limit = 200
Match = "onclick="getTrueRandomInteger\(document.getElementById\('true-random-integer-generator-min'\).value, document.getElementById\('true-random-integer-generator-max'\).value\);"
Replace = "onclick="document.getElementById('true-random-integer-generator-result').innerHTML = '<img src=/util/cp/images/ajax-loader.gif>';"

Если обработчик onclick на этом и заканчивается, я бы его заменял целиком, а не только начало без закрывающей кавычки.

Кстати, тут надо следить за кавычками: в изначальном варианте предлагается в скрипт вставить тег <img src=""> с параметрами в кавычках, которые уже используются во внешнем html-коде: onclick="". Проксу-то без разницы, что на что менять, а браузеру не понравится.

По второму варианту не понял, чего надо достичь. Если каждый onclick менять, то это делается проще, но сомнительна целессобразность.
К началу Профиль Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Пн, Ноя 16 2015 17:05 Цитировать |  |  | 

chAlx писал(а):
asgard:

Получится как-то так:

Код:
Name = "My new onclick replacer"
URL = "asgardgamez.net/"
Active = TRUE
Limit = 200
Match = "onclick="getTrueRandomInteger\(document.getElementById\('true-random-integer-generator-min'\).value, document.getElementById\('true-random-integer-generator-max'\).value\);"
Replace = "onclick="document.getElementById('true-random-integer-generator-result').innerHTML = '<img src=/util/cp/images/ajax-loader.gif>';"



спасибо, при тесте пишет [No Match]

полный кусок кода выглядит так:
Код:
<span id="true-random-integer-generator-max-button-span">
      <input type="button" onclick="getTrueRandomInteger(document.getElementById('true-random-integer-generator-min').value, document.getElementById('true-random-integer-generator-max').value);" id="true-random-integer-generator-button" name="true-random-integer-generator-button" value="Generate">
   </span>
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вт, Ноя 17 2015 00:32 Цитировать |  |  | 

asgard писал(а):
полный кусок кода

А полный фильтр, который тестируется?
Скопируй его в буфер обмена через "Экспорт" (по правому клику в списке) и закинь сюда.
К началу Профиль Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Вт, Ноя 17 2015 00:38 Цитировать |  |  | 

chAlx писал(а):
asgard писал(а):
полный кусок кода

А полный фильтр, который тестируется?
Скопируй его в буфер обмена через "Экспорт" (по правому клику в списке) и закинь сюда.

[Patterns]

Код:
Name = "My new onclick replacer"
Active = TRUE
Multi = TRUE
URL = "random.org/"
Limit = 300
Match = "<input type="button" onclick="getTrueRandomInteger(document.getElementById('true-random-integer-generator-min').value, document.getElementById('true-random-integer-generator-max').value);" id="true-random-integer-generator-button" name="true-random-integer-generator-button" value="Generate">"
Replace = "onclick="document.getElementById('true-random-integer-generator-result').innerHTML = '<img src=/util/cp/images/ajax-loader.gif>';"
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Вт, Ноя 17 2015 00:40 Цитировать |  |  | 

Ну так тут скобки не экранированы, они парсятся Проксом как служебные.
К началу Профиль Сообщение
asgard
Newbee
Newbee


Зарегистрирован: 11.11.2015
Сообщения: 17

СообщениеДобавлено: Вт, Ноя 17 2015 00:45 Цитировать |  |  | 

chAlx писал(а):
Ну так тут скобки не экранированы, они парсятся Проксом как служебные.


т.е. так:

Код:
Match = "<input type="button" onclick="getTrueRandomInteger\(document.getElementById\('true-random-integer-generator-min'\).value, document.getElementById\('true-random-integer-generator-max'\).value\);" id="true-random-integer-generator-button" name="true-random-integer-generator-button" value="Generate">"


при тесте выдает [No Match]
К началу Профиль Сообщение Отправить e-mail
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Ноя 19 2015 19:56 Цитировать |  |  | 

Так сложно сказать. Может, Limit слишком малый стоит...

Могу только предложить ещё раз выкатить точные тексты фильтра (из экспорта) и тестируемого кода.
К началу Профиль Сообщение
chAlx
Moderator
Moderator


Зарегистрирован: 30.06.2004
Сообщения: 2625
Откуда: SPb

СообщениеДобавлено: Чт, Ноя 19 2015 20:38 Цитировать |  |  | 

chAlx писал(а):
Русский хелп где-то был, хоть и староватый...


Нашёл архивный вариант:
http://proxomitron.ru/files/44ru_help_13mar2005.zip
К началу Профиль Сообщение
Показать сообщения:      
 
Новая тема  Ответить

 Перейти:   




Следующая тема
Предыдущая тема
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


P o w e r e d b y p h p B B © p h p B B G r o u p :: T h e m e b a s e d o n FI T h e m e :: Часовой пояс: GMT + 3