|
Добрый день, друзья.
Не подскажите, как можно с помощью грисманкей заменить ссылки на анкеты других пользователей? То есть, я хочу, чтобы скрипт искал на странице ссылки типа "/idxxxx" и менял их на "htt p ://durov(.)ru/#xxxx". Думаю это весьма тривиальная задача, но к сожалению не знаком с яваскриптом. Спасибо за помощь и внимание.
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
Данила
Хорошо, спасибо.
В интернете я искал, и гуглил и вики-справку пробовал читать. Но не разобрался. Мне немного не хватает знания английского для понимания, а на русском я не нашёл. |


Артём