как получить фиксированный предопределенный аргумент функции JS
стоит задача - получить параметр из вызова функции, но никак не могу придумать, как это сделать.
нужно для использования userjs в опере на странице есть такая вот кнопка
<input type="button" value="Тынц" onclick="gettt('C772AC8B')">
function gettt(data)
{
window.location.href='/'+hash+'/';
};
как попроще получить параметр этой функции, чтобы потом кнопку заменить на ссылку? формы на странице нет. кроме этого инпута есть еще 2 единственное, что я нашел - перебором нахожу кнопку-инпут и получаю функцию. через алерт ее вижу, но поиск с помощью регекса не выходит почему то...
var f = document.getElementsByTagName('input');
for(var i = 0; i < f.length; i++)
{
if(f[i].type && f[i].type=="button")
{
var ixs = f[i].onclick;
alert (ixs);
var patt1 = /gettt/m;
var res = ixs.match(patt1);
alert (res);
break;
}
}
помогите пожалуйста. заранее спасибо за отклик. Upd: исправил опечатку... на строке вываливается ошибка: Цитата:
|
Откуда str взялся?
|
да, это я вырезал из примеров - видать намудрил. но факт остается фактом - не работает код даже при правильном написании.
т.е. при таком виде работает var str = "The rain in Spain stays mainly in the plain"; var patt1 = /ain/g; alert(str.match(patt1)); а у меня нет - несоответствие типов. исправил вверху и добавил ошибку, на которой валится обработка.. есть еще варианты, как подступиться? |
Функция ixs не содержит метода match, зато есть метод toString .
|
|
Riim, нижайше благодарю - все получилось. сам наверное не один час лопатил бы интернет...
в итоге получилось такое:
var f = document.getElementsByTagName('input');
for(var i = 0; i < f.length; i++)
{
if(f[i].type && f[i].type=="button")
{
alert (f[i].onclick.toString().match(/gettt\(\"([\dabcdef]{32})\"\)/im)[1]);
break;
}
}
по крайней мере у меня работает и устраивает. ps - подсветка синтаксиса споткнулась на регексе :) |
| Часовой пояс GMT +3, время: 05:55. |