![]() |
ID="Уникальное_Имя" через JavaScript - Помогите!
Вложений: 1
Прошу прощения, но снова я вляпался в проблему...
смысл которой илюстрируется в приклееном архивчике и является таковой: шаблон генерирует мне таблицу с именем паки или файла, а так же ссылку к ней и, помимо того, генерирует скрытый слой с описанием ссылки, если таковое описание было задано. Проблема как-раз в этом скрытом слое порылась. Т.е. если у меня на странице более чем одно описание, то для всех ссылок отображается лишь то, которое ближе к верху, происходит это потому, что скрытый слой генерируется с одним и тем же "ID" для всех ссылок с описанием. Вот у меня возник вопрос, как заставить этот ID быть уникальным, при том, что ещё и вызов функции открывающей слой был адресован именно тому ID к которому относится? Насколько я пониманию, силами JavaScript это сделать можно, но у меня никак не выходит каменный цветок... Пожалуйста, помогите! |
Почему скрипт, котор генерирует хтмл не может генерить уникальные id?
Если нет доступа к коду скрипта, но можно менять шаблон - вставляй описание вместо id. Т.е. вместо <div id="t_screen" class="tip" style="left: 515px; top: 298px;"> и onmousemove="ts(event,'t_screen')" onmouseout="tc('t_screen')" соотв <div id="Описание касающееся паки №3" class="tip" style="left: 515px; top: 298px;"> и onmousemove="ts(event,'Описание касающееся паки №3')" onmouseout="tc()" |
Ale
Спасибо. В принципе мне такая мысль в голову приходила, но есть некоторые проблемы с реализацией такого подхода: 1. Длина описания может составлять 255 знаков. Умножаем на три... 2. Само описание может содержать html форматирование и уже не обработается. 3. Выглядит этот метод, как бы сказать правильно, не так, как мог бы... Я понимаю, что именно в этом направлении нужно двигаться, но не описание целиком подставлять. Нужно что-то короткое и элегантное. т.е. я как пёсик, всё понимаю, но сказать не могу... |
Вложений: 1
Цитата:
Цитата:
Цитата:
Цитата:
НО все же самым правильным (оно же красивым), имхо, было бы формировать и выводить весь этот код не джава-скриптом а пхп |
Да уж, про ПХП я знаю, но это совершенно другая история. Это не веб-сайт, это темплэйт генерируемый программой hfs.exe (HTTP File Server).
Используются свои собственные методы генерации. Вот как это выглядит, в кусочке: Код:
[files]Из шаблона [comment] шаблоны [file] [folder] [link] не парсятся. Пробовал переставлять местами - ничего не изменилось... т.е. %item-name% так и прописывается, и ID по прежнему остаётся одним и тем же... Далее, если вставить массив в <head></head>, то не парсится значение для %comment% и т.д. Блин, я 100% уверен, что есть решение. Влезать в исходный код программы мне бы не хотелось. Да и задачи такой нет. В конце-концов у неё есть автор, это его рук дело: &RQ (крыса, в народе). Да и в Delphi я куда ещё больший чайник. Спасибо тебе за то, что парился так долго. Может ещё какие мысли придут, в силу вновь открывшихся обстоятельств. Вообще, можешь её скачать и попробовать, очень милый файловый сервер, кстати. Тут сама прога: _http://www.rejetto.com/temp/hfs2.0alpha20.zip Тут мой темплейт: _http://www.audiodom.ru/hfs/HFS_damn_Template_by_brooks.zip Форум проги: _http://rejetto.gamesnet.it/forum/viewforum.php?f=21&sid=3bd72b520e8173e00564a0aa5f208b2c |
Звиняй, нет возможности подробно вникать в hfs. Есть возможность вносить изменения в кусочек котор ты привел? Если да, попробуй так:
Код:
function randomID() {В блоке [comment] 1ю строку заменить на Код:
<script>var screenID="scr"+randomID(); document.write("<div id="+screenID+" class=tip style='left: 515px; top: 298px;'>")</script>Код:
<script>document.write("<img onmousemove=\"ts(event,'"+screenID+"')\" onmouseout='tc()' src='/~img10' alt='' border=0>")</script> |
Вложений: 1
Предлагаю в данном случае обращаться к описанию не по ID, а ОТНОСИТЕЛЬНО вызова функции показа комментария, я так понял что структура докмента строго задается, тогда это становится вполне возможно.
Я проверял под Моззилой только, и мне лень писать для такого количества браузеров, но идея я думаю ясна. Вот мой пример решения данной задачи, обрати внимание на обращение к комментарию в функции getLayer(layerName), а также на вызов вункции onmousemove="ts(event,this)", вместо onmousemove="ts(event,'t_screen')". |
Уфф... Ale
Именно это мне и было нужно! Огроменное спасибо! Всё прекрасно работает. А я дурак пытался через скрытые поля формы передать сгенерерованные ID. Hubbitus Работает в отрисованной странице, без проблем. Но в реальных условиях почему-то отказ... Жаль. А идея хорошая. Нужно будет подумать над ней. Спасибо! |
Цитата:
Хотя решать тебе конечно. |
Hubbitus
Прошу прощения. Я видимо что-то упустил. Теперь вижу - действительно всё работает. Супер! |
| Часовой пояс GMT +4, время: 10:28. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.