приветствую всех
===
пытаюсь подрихтовать один скрипт (скрипт не мой, стащил с другого форума), но т.к. в JS не силен (в основном PHP), поэтому слабо получается
что у нас есть
ф-я fetch_object(obj) - описана в файле
vbulletin_global.js
ф-я fetch_tags(parentObj, tag) - описана в файле
vbulletin_global.js
ф-я get_e(e):
function get_e(e)
{
return (e) ? e : (window.event) ? event : null;
}
ф-я who_fired_event(e):
function who_fired_event(e)
{
e = get_e(e);
if(!e)
{
return;
}
var targ = (e.target) ? e.target : (e.srcElement ? e.srcElement : null);
if(targ && targ.nodeType == 3)
{
targ = targ.parentNode;
}
return targ;
}
есть объект (это тело сообщения любого поста темы)
var Obj = fetch_object('post_message_' + postid);
есть таржет
var postObj = who_fired_event(evt);
<div id="post_message_$post[postid]">
$ad_location[ad_showthread_firstpost_start]
$post[message]
</div>
что нужно
что бы событие
onclick срабатывало
только внутри этого "дива" и во всех его потомках и нигде больше
так собсно в чем вопрос, как правильно создать условие, что бы было именно так, а не иначе
что пробовал
3 дня мучил гугля в поисках готового решения
пробовал сам запихать в цикл for() объект и пройтись по всем его чилдам заключая в условие только типы (nodeType) 1 и 3
событие срабатывает, но только если это текст поста, если в посте есть так же и включенные теги, например бб-коды
полужирный текст или
наклонный или любой другой, событие не срабатывает
дебаг делал при помощи ф-ии
function echo(obj, str)
{
var obj = fetch_object(obj);
obj.innerHTML += str;
}
подключая как объект прописанный в шаблоне (postbit_legacy) пустой див
<div id="p_$post[postid]"></div>
вызывается так
var p = fetch_object('p_' + postid);
echo(p.id, string);
без всех этих телодвижений скрипт работает нормально, пример на моем форуме (ссылка в профиле) выделить текст в посте, появится окошко "цитировать", кликнув на которое, выделенный текст вставляется в форму быстрого ответа с ником пользователя этого поста и ID этого поста
примерно так
[quote=nickname;123456]выделенный текст[/quote]
этот скрипт, доработка (+микс с другим) того, что установлен на этом форуме
скрипт работает естессно только когда заходишь, как пользователь, гостям недоступно
===
если кто не зареган там или лениво, то вот картинка, как это выглядит