Получение параметра обьекта
Есть сайт с обьявлениями Slando.ua. Захожу на к примеру вот это обьявление. http://shostka.sum.slando.ua/obyavle...promoted;r:;s:
Номер телефона по умолчанию скрыт. Открывается по клику на кнопку. Хочу спарсить его) Нахожу по тегу элемент: s = document.getElementsByTagName('a') s[51] - искомый кусок, содержащий следующее(смотрю через Firebug): <a class="clicker {clickerID:'phone_details','path':'phone', 'id':'5j1mD', 'id_raw': '78415159' } atClickTracking link spoiler small link-phone nowrap" rel="phone" href="javascript:void(0);"> Если выполнить функцию s[51].click(); то картинка появится. При этом в Firebug отобразится get-ответ: "<img src=\"http:\/\/shostka.sum.slando.ua\/ajax\/misc\/phoneimage\/5j1mD\/?nomobile=1\" class=\"contactimg\" \/>" Как мне или записать весь этот ответ в переменную или как вытащить 'id' со свойств класса? s[51].id ничего не возвращает. |
document.querySelector("a[rel='phone']").className.match(/\{.*\}/)[0] |
<a class="clicker {clickerID:'phone_details','path':'phone', 'id':'5j1mD', 'id_raw': '78415159' } atClickTracking link spoiler small link-phone nowrap" rel="phone" href="javascript:void(0);"> <script> var link = document.querySelector('a.clicker'); var data = link.className.match(/{.*}/); var object = eval( '(' + (data || 'null') + ')'); if (object) { alert(object.id); } </script> |
Спасибо. Воспользовался первым ответом и сделал вот так:
getid = document.querySelector("a[rel='phone']").className.match(/\{.*\}/)[0]; m = getid.split(':'); n = m[3].split('\''); href = 'http://shostka.sum.slando.ua/ajax/misc/phoneimage/'+n[1]+'/?nomobile=1'; alert(href); Но, как я понимаю, вариант во втором комменте предпочтительней, потому что он будет более стойким к всяческим изменениям внутри самого сайта. Спасибо большое) Буду ковыряться дальше. |
danik.js,
Ай-ай-ай, eval'ить почём зря - плохой вариант. |
Цитата:
|
JSON.parse же. А вообще лучше вручную - всё равно уж регулярку заюзал.)
|
Цитата:
Вобще какой тормоз до такого вобще додумался. Мало того что не JSON, так еще и в класс засунули.:-/ |
Часовой пояс GMT +3, время: 12:44. |