Получение параметра обьекта
Есть сайт с обьявлениями 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, время: 23:17. |