Вебмастеру

 
 
13

Скрипт для GM

  • Категория: html
Добрый день, друзья.
Не подскажите, как можно с помощью грисманкей заменить ссылки на анкеты других пользователей?

То есть, я хочу, чтобы скрипт искал на странице ссылки типа "/idxxxx" и менял их на "htt p ://durov(.)ru/#xxxx".

Думаю это весьма тривиальная задача, но к сожалению не знаком с яваскриптом.
Спасибо за помощь и внимание.
 
 
1

Артём

  • группа: Гости
читайте про регулярные выражения в js
 
 
2

Endi

  • группа: Гости
спасибо прочитал.
а вы не подскажите как считать построчно код страницы?
 
 
3

Павел

  • группа: Гости
лучше прочитай как найти все ссылки на странице - про document.links
 
 
4

Endi

  • группа: Гости
function test3(img,k)
{
var partz1 =img.href.split('/');

//var partz2 = partz1[3].split('d');
alert(partz1[3]);
//if(partz2[0] =="i")
//{
//alert(partz2[1]);
//document.links[k]="http: //durov . ru/#"+partz2[1];
//}

}

function hi3(){
var imgs = document.links;
for (var i=0; i<imgs.length;i++)
{

test3(imgs[i],i);
//alert(imgs[i]);

}
}
 
 
5

Артём

  • группа: Гости
Я не специалист в js, не знаю, как работает document.links и с регулярками у меня туго, но я бы сделал так:

function test4(a)
{
var m = a . href . match(/\/id(\d+)/);

if(m) {
a . href ="...durov...#"+m[1];
}
}

function hi4(){
var links = document.getElementsByTagName('a');
for (var i=0; i<links.length;i++) {

test4(links[i]);
}
}

Возможно будет работать, сам не проверял.
 
 
6

Endi

  • группа: Гости
Благодарствую, все шикарно работает!
 
 
7

Endi

  • группа: Гости
кстати, интересует, это писалось через блокнот, или есть какие-нибудь компиляторы, в которых можно скрипт под сайт компилировать(проверять\где есть подсказки\и хелп)..ну Visual Studio аля))
 
 
8

Артём

  • группа: Гости
писалось это даже не в блокноте, а прямо в поле ответа здесь вконтакте)

Для небольшого кода использую notepad++, для большого - плагин aptana для eclipse, он либо сразу нравится, либо сразу не нравится, мне понравился. Где-то в этой группе есть тема про редакторы, почитайте.
 
 
9

Олег

  • группа: Гости
компиляторов точно нет
 
 
10

Данила

  • группа: Гости
Здравствуйте, пишу юзер скрипт, впервые. В JS тоже опыта почти нет. Возникает много вопросов, не на все удаётся найти ответы. Спрашивал уже в другой группе, что там не очень-то помогают.

Значит. Пользовательские скрипты изолированы от страницы и со страницы невозможно вызвать функцию, объявленную в GM-скрипте. Но как быть, если мне нужно, грубо говоря, добавить на страницу кнопку, которая будет выполнять какой-то скрипт (слишком большой, чтобы его в онклик пихать) при нажатии?
Я додумался только создавать Element('script') на странице и пихать туда в иннерХТМЛ нужный скрипт. Получается довольно убого и очень неудобно.
Потом я вспомнил про события и мне удалось, всё-таки, вызвать функцию скрипта со страницы с помощью document.addEventListener(event, func, false).
Но вот document.getElementById('myElement').onclick = function() не работает — консоль пишет Component is not available. Я из-за недостаточного знания JS, видимо, не могу понять, в чём именно тут суть? Не могли бы вы мне помочь с этим разобраться?
И, собственно, главный вопрос: как правильнее будет решать такую задачу? Нормально ли делать с помощью addEventListener или есть ещё какие-то способы?
 
 
11

Данила

  • группа: Гости
И сразу ещё один вопрос. При загрузке страницы (страница редактирования или создания заметок ВКонтакте) скрипт полностью работает, но выдаёт в консоль два раза: «A is null» в строке 3.
Код: http://http://pastebin.com/75kCLdVZ
Проверил алертами, вышло что скрипт выполняется один раз и всё нормально, но потом он зачем-то пытается ещё раз выполниться.
Могу предположить, что это связано с фреймом на той странице. Вроде как скрипт выполняется повторно после того как подгружается фрейм.
Можете что-нибудь посоветовать?
 
 
12

Павел

  • группа: Гости
>удалось с помощью addEventListener
>onclick = function() не работает
в общем-то все так и есть.
http://http://wiki.greasespot.net/XPCNativeWrapper
вот тут подробнее.
Насколько я знаю, addEventListener лучший способ.

>Ну что, никто не поможет с GM скриптом разобраться?
никто не отвечал, потому что довольно много информации есть в интернете. и примеры, и фак, и еще много чего.

Про заметки.
Да, там очень странно. Обычно фреймы не мешают, но не тут. что-то они перехитрили там. Проще всего конечно проверять наличие какого-либо элемента и выполнять только в этом случае.
 
 
13

Данила

  • группа: Гости
Хорошо, спасибо.
В интернете я искал, и гуглил и вики-справку пробовал читать. Но не разобрался. Мне немного не хватает знания английского для понимания, а на русском я не нашёл.
 
 
Регистрация

Популярные статьи

» Mozilla Firefox: помощь и взаимоподдержка. Спрашиваем, ...
» Вопросы от новичков...
» перешли ли вы 100% на линукс без установленной параллел ...
» Ваши любимые плагины и дополнения
» Ответы на вопросы по PHP
» Какие CMS ВЫ предпочитаете - (плюсы и минусы)
» FAQ: вопросы и ответы
» Вопросы и консультации
» Другие браузеры (голосование!)
» Зарплата PHP программиста