>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Firefox http://forum.mozilla-russia.org/viewforum.php?id=4 >Скрипт для GreaseMonkey http://forum.mozilla-russia.org/viewtopic.php?id=2984 |
djet > 14-05-2005 18:21:29 |
Хочу удалить все лишние пробелы в названиях параметров about:config здесь, для чего с помощью Platypus создал такой вот RegEx для GreaseMonkey: Но почему-то он не работает, хотя работает в .NET. GreaseMonkey что ли не поддерживает ретроспективную проверку? Как правильно составить RegEx для удаления пробелов? |
djet > 16-05-2005 21:52:01 |
Поменял на , теперь съедаются все вхождения ". ", а не только внутри <strong>.. Неужели никто не знает RegEx? |
djet > 17-06-2005 23:38:34 |
При загрузке страницы заметно не очень приятное мелькание, свидетельствующее о применении скриптов. От этого можно избавиться? |
SOb > 18-06-2005 20:22:33 |
Не нашел, что такое Platypus, но что, если сделать так: |
djet > 18-06-2005 20:50:50 |
SOb |
djet > 19-06-2005 00:31:53 |
SOb Выделить код Код:platypus_do_function(window, 'do_modify_html',document.getElementById('content'),/<strong>(.*?)\. (.*?)<\/strong>/gi,'<strong>$1.$2</strong>',null); , но ничего не изменилось. Убирается только первый пробел. Наверное, оттого, что механизм регулярных выражений находит первое вхождение <strong>(.*?)\. (.*?)</strong> в каждой строке и на этом успокаивается. Самый первый вариант хорош, но работает только в .NET, где возможностей RegEx побольше. |
SOb > 19-06-2005 00:33:44 |
Никакой автоматики, всё руками, блин. Выделить код Код:var res = document.evaluate("//strong", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var arr = []; while (item=res.iterateNext()) { arr.push(item); } for (var i=0; i<arr.length; ++i) { arr[i].firstChild.nodeValue = arr[i].firstChild.nodeValue.replace(new RegExp("(.*?). (.*?)", "g"), "$1.$2"); } Получаем все strong-и в XPathResult объект. |
djet > 19-06-2005 00:42:08 |
SOb |
SOb > 19-06-2005 01:21:48 |
djet пишет
Нет, не то же самое. За счёт скобок мы и получаем $1 и $2. Выделить код Код:var res = document.evaluate("//strong", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var arr = []; while (item = res.iterateNext()) { arr.push(item); } for (var i=0; i<arr.length; ++i) { try { arr[i].lastChild.nodeValue = arr[i].lastChild.nodeValue.replace(new RegExp("(.*?). (.*?)", "g"), "$1.$2"); } catch(e) { ++i; } } Тогда некоторые строчки в таблице останутся с пробелами. |
djet > 19-06-2005 01:28:25 |
SOb |
SOb > 19-06-2005 01:39:08 |
djet пишет
В коде явно указано, что мы хотим работать только с элементами <strong>, сделано это параметром //strong к функции evaluate объекта document. Впрочем да, выражение действительно можно теперь записать проще RegExp("\. ", "g"), "."). |
djet > 19-06-2005 01:53:50 |
SOb |
SOb > 19-06-2005 01:57:08 |
djet пишет
Нет, см. ещё раз пост #9 в этой ветке. |
djet > 19-06-2005 02:00:09 |
Да, время позднее, и в голове куча предэкзаменационной каши.. |
SOb > 19-06-2005 02:02:39 |
djet пишет
А я вот еще попутно WebMoney через GM натягивал. Натянул таки. Хорошая штука GM! |
djet > 19-06-2005 02:09:12 |
SOb Неплохо бы в wiki открыть раздел для скриптов GM. |
SOb > 19-06-2005 10:39:53 |
djet пишет
Интерес к теме WM нулевой. А для GM уже всё открыли - http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference и http://www.google.com |