Простой скрипт под GM
С новым годом.
Хотел написать скрипт для GreaseMonkey, который добавляет ссылку "ответить" при нажатии на которую из комментария берется ник отправителя и добавляется в текстовое поле. Ссылку добавить удалось, но она выглядит так: <a href="javascript://" onclick="document.getElementsByTagName(textarea)[0].value=nik">Ответить</a> И из-за этого ничего не работает. Исходный код:
var blocks=document.getElementsByClassName('block_zero');
var block=blocks.length-3;
for (var i=1;i<=block;i++) {
var nik=document.getElementsByClassName('block_zero')[i].getElementsByTagName('a')[1].innerHTML;
var text='document.getElementsByTagName('"textarea"')[0].value=nik';
document.getElementsByClassName('block_zero')[i].getElementsByClassName('medium')[0].getElementsByTagName('span')[0].innerHTML+=' | <a href="javascript://" onclick="'+text+'">Ответить</a>';
}
Помогите заставить работать скрипт, заранее спасибо. |
вот (код не проверял)
var blocks = document.getElementsByClassName('block_zero') ;
var block = blocks.length-3 ;
for(var i=1; i<=block; i++) {
var nik = blocks[i].getElementsByTagName('a')[1].innerHTML ;
var text = document.getElementsByTagName('"textarea"')[0] ;
blocks[i].getElementsByClassName('medium')[0].getElementsByTagName('span')[0].innerHTML += ' | <a href="#" onclick="text.value=nik;return false;">Ответить</a>';
} ;
|
nik is not defined
Не работает. |
Nexus, приведите html-код страницы
|
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC '-//WAPFORUM//DTD XHTML Mobile 1.0//EN' 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='content-type' content='text/html; charset=UTF-8' />
<meta name='viewport' content='width=device-width; minimum-scale=1; maximum-scale=1'>
<link rel='stylesheet' type='text/css' href='/css/main.css?54' />
<title>Title</title>
</head>
<body>
<div>
<div class='main' style='word-wrap:break-word;'>
<div class='head center' onclick='location.href="/"'>
<img src='' />Number1 |
<img src='' />Number2</div>
<div class='exp_bar'>
<div class='progress' style='width:0%'></div>
</div>
<div class='title'>Title</div>
<div class='mini-line'></div>
<div class='menuList'>
<li>
<a class='grey' href='/forum/topic/192074?r=52418200'>Перейти к новому</a>
</li>
</div>
<div class='dot-line'></div>
<div class='block_zero'>Комментарии:
<b>1854</b>
</div>
<div class='mini-line'></div>
<div class='block_zero'>
<a name='3732939'></a>
<img src='' />
<a href='/user/522363/'>Nik1</a>,
<span class='medium'>
<span class='grey'>Date1</span>
</span>
<br/>Mes1</div>
<div class='dot-line'></div>
<div class='block_zero'>
<a name='3733041'></a>
<img src='' />
<a href='/user/1703862/'>Nik2</a>,
<span class='medium'>
<span class='grey'>Date2</span>
</span>
<br/>Mes2</div>
<div class='dot-line'></div>
<div class='block_zero'>
<a href='/forum/topic/192074/1'><<</a>
<a href='/forum/topic/192074/185'><</a>
<a href='/forum/topic/192074/182'>182</a>
<a href='/forum/topic/192074/183'>183</a>
<a href='/forum/topic/192074/184'>184</a>
<a href='/forum/topic/192074/185'>185</a>186 > >></div>
<div class='block_zero'>
<form action='/forum/topic/192074?r=52418200' method='post'>
<div>Сообщение:
<br/>
<textarea name='text' rows='4' cols='15' class='text large'></textarea>
<br/>
<input type='hidden' name='error' value='64764731' />
<span class='btn'>
<span class='end'>
<input class='label' type='submit' value='Отправить'>Отправить</span>
</span>
</div>
</form>
</div>
<div class='dot-line'></div>
<div class='menuList'>
<li>
<a href='/forum/subforum/2?r=52418200'><img src='/images/icon/arrow.png' alt=''/>Вернуться в раздел</a>
</li>
</div>
<div class='line'></div>
<br/>
<div class='center'></div>
</body>
</html>
|
Попробуйте
var blocks = document.getElementsByClassName("block_zero") ;
var block = blocks.length-3 ;
var text = document.getElementsByTagName("textarea")[0] ;
var niks = [] ;
for(var i=1; i<=block; i++) {
niks[i] = blocks[i].getElementsByTagName("a")[1].innerHTML ;
blocks[i].getElementsByClassName("medium")[0].getElementsByTagName("span")[0].id = i ;
blocks[i].getElementsByClassName("medium")[0].getElementsByTagName("span")[0].innerHTML += ' | <span onclick="text.value=niks[this.parentNode.id]">Ответить</span>' ;
} ;
Вот, всё работает
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC '-//WAPFORUM//DTD XHTML Mobile 1.0//EN' 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='content-type' content='text/html; charset=UTF-8' />
<meta name='viewport' content='width=device-width; minimum-scale=1; maximum-scale=1'>
<link rel='stylesheet' type='text/css' href='/css/main.css?54' />
<title>Title</title>
</head>
<body>
<div>
<div class='main' style='word-wrap:break-word;'>
<div class='head center' onclick='location.href="/"'>
<img src='' />Number1 |
<img src='' />Number2</div>
<div class='exp_bar'>
<div class='progress' style='width:0%'></div>
</div>
<div class='title'>Title</div>
<div class='mini-line'></div>
<div class='menuList'>
<li>
<a class='grey' href='/forum/topic/192074?r=52418200'>Перейти к новому</a>
</li>
</div>
<div class='dot-line'></div>
<div class='block_zero'>Комментарии:
<b>1854</b>
</div>
<div class='mini-line'></div>
<div class='block_zero'>
<a name='3732939'></a>
<img src='' />
<a href='/user/522363/'>Nik1</a>,
<span class='medium'>
<span class='grey'>Date1</span>
</span>
<br/>Mes1</div>
<div class='dot-line'></div>
<div class='block_zero'>
<a name='3733041'></a>
<img src='' />
<a href='/user/1703862/'>Nik2</a>,
<span class='medium'>
<span class='grey'>Date2</span>
</span>
<br/>Mes2</div>
<div class='dot-line'></div>
<div class='block_zero'>
<a href='/forum/topic/192074/1'><<</a>
<a href='/forum/topic/192074/185'><</a>
<a href='/forum/topic/192074/182'>182</a>
<a href='/forum/topic/192074/183'>183</a>
<a href='/forum/topic/192074/184'>184</a>
<a href='/forum/topic/192074/185'>185</a>186 > >></div>
<div class='block_zero'>
<form action='/forum/topic/192074?r=52418200' method='post'>
<div>Сообщение:
<br/>
<textarea name='text' rows='4' cols='15' class='text large'></textarea>
<br/>
<input type='hidden' name='error' value='64764731' />
<span class='btn'>
<span class='end'>
<input class='label' type='submit' value='Отправить'>Отправить</span>
</span>
</div>
</form>
</div>
<div class='dot-line'></div>
<div class='menuList'>
<li>
<a href='/forum/subforum/2?r=52418200'><img src='/images/icon/arrow.png' alt=''/>Вернуться в раздел</a>
</li>
</div>
<div class='line'></div>
<br/>
<div class='center'></div>
<script>
var blocks = document.getElementsByClassName("block_zero") ;
var block = blocks.length-3 ;
var text = document.getElementsByTagName("textarea")[0] ;
var niks = [] ;
for(var i=1; i<=block; i++) {
niks[i] = blocks[i].getElementsByTagName("a")[1].innerHTML ;
blocks[i].getElementsByClassName("medium")[0].getElementsByTagName("span")[0].id = i ;
blocks[i].getElementsByClassName("medium")[0].getElementsByTagName("span")[0].innerHTML += ' | <span onclick="text.value=niks[this.parentNode.id]">Ответить</span>' ;
} ;
</script>
</body>
</html>
|
text is not defined
|
Данный скрипт должен выполняться в greasemonkey, если бы можно было добавить его на страницу, то проблем никаких не было.
|
Nexus, а, тогда извините, ничем не могу помочь, с greasemonkey не знаком
|
Hekumok, Спасибо за уделенное время.
|
| Часовой пояс GMT +3, время: 01:17. |