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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№114-05-2005 18:21:29

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Скрипт для GreaseMonkey

Хочу удалить все лишние пробелы в названиях параметров about:config здесь, для чего с помощью Platypus создал такой вот RegEx для GreaseMonkey:

Выделить код

Код:

(?<=<strong>.*)\b. \b(?=.*</strong>)

Но почему-то он не работает, хотя работает в .NET. GreaseMonkey что ли не поддерживает ретроспективную проверку? Как правильно составить RegEx для удаления пробелов?


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№216-05-2005 21:52:01

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

Поменял на

, теперь съедаются все вхождения ". ", а не только внутри <strong>.. :/  :(  Неужели никто не знает RegEx?


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№317-06-2005 23:38:34

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

При загрузке страницы заметно не очень приятное мелькание, свидетельствующее о применении скриптов. От этого можно избавиться?


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№418-06-2005 20:22:33

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

Не нашел, что такое Platypus, но что, если сделать так:
ищем <strong>(.*?)\.\ (.*?)</strong>
меняем на <strong>\\1.\\2</strong>

Отсутствует

 

№518-06-2005 20:50:50

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
Удаляет только первый пробел.. Кстати, а зачем нужен escape перед пробелом?

Platypus!, или о чём мечтал Asa Dotzler.


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№619-06-2005 00:31:53

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
Ну выражение такое и было:

Выделить код

Код:

platypus_do_function(window, 'do_modify_html',document.getElementById('content'),/<strong>(.*?)\. (.*?)<\/strong>/gi,'<strong>$1.$2</strong>',null);

, но ничего не изменилось. Убирается только первый пробел. Наверное, оттого, что механизм регулярных выражений находит первое вхождение <strong>(.*?)\. (.*?)</strong> в каждой строке и на этом успокаивается. Самый первый вариант хорош, но работает только в .NET, где возможностей RegEx побольше.


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№719-06-2005 00:33:44

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

Никакой автоматики, всё руками, блин.
Вот работающий код для убирания этих пробелов.

Выделить код

Код:

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 объект.
Потом перекидываем их в массив, т.к. если начать править прямо в XPathResult, то он развалится.
Ну и там уже исправляем, что хотели.

Отредактировано SOb (19-06-2005 00:40:43)

Отсутствует

 

№819-06-2005 00:42:08

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
А почему RegEx поменялся? Это получается то же самое, что и \b\. \b?
Кстати, можно было не трудиться объяснять мне, как это работает. Я всё равно в JS совершенно не разбираюсь. :)


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№919-06-2005 01:21:48

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

djet пишет

SOb
А почему RegEx поменялся? Это получается то же самое, что и \b\. \b?
Кстати, можно было не трудиться объяснять мне, как это работает. Я всё равно в JS совершенно не разбираюсь. :)

Нет, не то же самое. За счёт скобок мы и получаем $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;
  }
}

Тогда некоторые строчки в таблице останутся с пробелами.
А по поводу «не разбираюсь» - нужно думать и о других, которые чуть чуть разбираются. :)

Отсутствует

 

№1019-06-2005 01:28:25

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
Но результат ведь тот же: заменятся все вхождения ". ", причём не только внутри <strong>.


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№1119-06-2005 01:39:08

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

djet пишет

SOb
Но результат ведь тот же: заменятся все вхождения ". ", причём не только внутри <strong>.

В коде явно указано, что мы хотим работать только с элементами <strong>, сделано это параметром //strong к функции evaluate объекта document. Впрочем да, выражение действительно можно теперь записать проще RegExp("\. ", "g"), "."). :)

Отредактировано SOb (19-06-2005 01:44:00)

Отсутствует

 

№1219-06-2005 01:53:50

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
Понятно. Спасибо за решение. :) Работает нормально, только почему-то несколько строчек (browser. anchor_color, например) остались с пробелами. Может это GM глючит..


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№1319-06-2005 01:57:08

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

djet пишет

SOb
Понятно. Спасибо за решение. :) Работает нормально, только почему-то несколько строчек (browser. anchor_color, например) остались с пробелами. Может это GM глючит..

Нет, см. ещё раз пост #9 в этой ветке. :)
P.S.: И, конечно, пожалуйста за решение. :)

Отсутствует

 

№1419-06-2005 02:00:09

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

Да, время позднее, и в голове куча предэкзаменационной каши.. :rolleyes:


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№1519-06-2005 02:02:39

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

djet пишет

Да, время позднее, и в голове куча предэкзаменационной каши.. :rolleyes:

А я вот еще попутно WebMoney через GM натягивал. :) Натянул таки. :) Хорошая штука GM!

Отредактировано SOb (19-06-2005 02:03:07)

Отсутствует

 

№1619-06-2005 02:09:12

djet
Участник
 
Группа: Extensions
Откуда: 404 Not Found
Зарегистрирован: 20-11-2004
Сообщений: 2611

Re: Скрипт для GreaseMonkey

SOb
И много money натянул в итоге? lol.gif

Неплохо бы в wiki открыть раздел для скриптов GM.


Без бага и ошибки я софт Mozilla не люблю!
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Microsoft® Office Outlook® 2007 (12.0.4518.1014) MSO (12.0.4518.1014)

Отсутствует

 

№1719-06-2005 10:39:53

SOb
Участник
 
Группа: Members
Зарегистрирован: 26-03-2005
Сообщений: 93

Re: Скрипт для GreaseMonkey

djet пишет

SOb
И много money натянул в итоге? http://i2.ru-board.com/s/lol.gif

Неплохо бы в wiki открыть раздел для скриптов GM.

Интерес к теме WM нулевой. А для GM уже всё открыли - http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference и http://www.google.com

Отсутствует

 

Board footer

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