| imho.ws |
![]() |
|
|
|
# 1 |
|
Full Member
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
ID="Уникальное_Имя" через JavaScript - Помогите!
Прошу прощения, но снова я вляпался в проблему...
смысл которой илюстрируется в приклееном архивчике и является таковой: шаблон генерирует мне таблицу с именем паки или файла, а так же ссылку к ней и, помимо того, генерирует скрытый слой с описанием ссылки, если таковое описание было задано. Проблема как-раз в этом скрытом слое порылась. Т.е. если у меня на странице более чем одно описание, то для всех ссылок отображается лишь то, которое ближе к верху, происходит это потому, что скрытый слой генерируется с одним и тем же "ID" для всех ссылок с описанием. Вот у меня возник вопрос, как заставить этот ID быть уникальным, при том, что ещё и вызов функции открывающей слой был адресован именно тому ID к которому относится? Насколько я пониманию, силами JavaScript это сделать можно, но у меня никак не выходит каменный цветок... Пожалуйста, помогите!
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся. Best regards! 2008 © Roman V. Brooks |
|
|
|
|
# 2 |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Почему скрипт, котор генерирует хтмл не может генерить уникальные 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()" |
|
|
|
|
# 3 |
|
Full Member
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ale
Спасибо. В принципе мне такая мысль в голову приходила, но есть некоторые проблемы с реализацией такого подхода: 1. Длина описания может составлять 255 знаков. Умножаем на три... 2. Само описание может содержать html форматирование и уже не обработается. 3. Выглядит этот метод, как бы сказать правильно, не так, как мог бы... Я понимаю, что именно в этом направлении нужно двигаться, но не описание целиком подставлять. Нужно что-то короткое и элегантное. т.е. я как пёсик, всё понимаю, но сказать не могу...
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся. Best regards! 2008 © Roman V. Brooks |
|
|
|
|
# 4 | ||||
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Цитата:
Цитата:
Цитата:
![]() Цитата:
НО все же самым правильным (оно же красивым), имхо, было бы формировать и выводить весь этот код не джава-скриптом а пхп |
||||
|
|
|
|
# 5 |
|
Full Member
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Да уж, про ПХП я знаю, но это совершенно другая история. Это не веб-сайт, это темплэйт генерируемый программой hfs.exe (HTTP File Server).
Используются свои собственные методы генерации. Вот как это выглядит, в кусочке: Код:
[files]
<tr>
<th style="text-align:center"><span class="column">I</span>
<th><a href="%folder%?sort=n"><span class="column">FILENAME</span></a>
<th><a href="%folder%?sort=s"><span class="column">FILESIZE</span></a>
<th><a href="%folder%?sort=t"><span class="column">FILEDATE</span></a>
<th style="text-align:center"><span class="column">HITS</span>
</tr>
%list%
[file]
<tr class="mout" onmouseover="this.className='mover'" onmouseout="this.className='mout'" onclick="location.href='%item-url%'">
<td width="16px">%comment%</td>
<td><img align="top" src="/~img_file" border="0" alt=""> <b>%item-name%</b></td>
<td>%item-size%</td>
<td>%item-modified%</td>
<td>%item-dl-count%</td>
</tr>
[folder]
<tr class="mout" onmouseover="this.className='mover'" onmouseout="this.className='mout'" onclick="location.href='%item-url%'">
<td width="16px">%comment%</td>
<td><img align="top" src="/~img_folder" border="0" alt=""> <b>%item-name%</b></td>
<td colspan="3"><b><i>Directory</i></b></td>
</tr>
[link]
<tr class="mout" onmouseover="this.className='mover'" onmouseout="this.className='mout'" onclick="location.href='%item-url%'">
<td width="16px">%comment%</td>
<td><img align="top" src="/~img_link" border="0" alt=""> <b>%item-name%</b></td>
<td colspan="3"><b><i>This is a link</i></b></td>
[comment]
<div id="t_screen" class="tip" style="left: 515px; top: 298px;">
<table width="100%"><tr><td><span class="tipline" id="bb"><i>= Comment =</i></span></td></tr>
<tr><td class="tip2"> %item-comment% </td></tr>
</table>
</div>
<img onmousemove="ts(event,'t_screen')" onmouseout="tc('t_screen')" src="/~img10" border="0" alt="">
Из шаблона [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
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся. Best regards! 2008 © Roman V. Brooks |
|
|
|
|
# 6 |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Звиняй, нет возможности подробно вникать в hfs. Есть возможность вносить изменения в кусочек котор ты привел? Если да, попробуй так:
Код:
function randomID() {
id=''
max_len=8
while (max_len) {r=Math.round(Math.random()*10); id+=r; max_len--}
return id
}
В блоке [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>
|
|
|
|
|
# 7 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Предлагаю в данном случае обращаться к описанию не по ID, а ОТНОСИТЕЛЬНО вызова функции показа комментария, я так понял что структура докмента строго задается, тогда это становится вполне возможно.
Я проверял под Моззилой только, и мне лень писать для такого количества браузеров, но идея я думаю ясна. Вот мой пример решения данной задачи, обрати внимание на обращение к комментарию в функции getLayer(layerName), а также на вызов вункции onmousemove="ts(event,this)", вместо onmousemove="ts(event,'t_screen')".
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
# 8 |
|
Full Member
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Уфф... Ale
Именно это мне и было нужно! Огроменное спасибо! Всё прекрасно работает. А я дурак пытался через скрытые поля формы передать сгенерерованные ID. Hubbitus Работает в отрисованной странице, без проблем. Но в реальных условиях почему-то отказ... Жаль. А идея хорошая. Нужно будет подумать над ней. Спасибо!
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся. Best regards! 2008 © Roman V. Brooks |
|
|
|
|
# 9 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Хотя решать тебе конечно.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 10 |
|
Full Member
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Hubbitus
Прошу прощения. Я видимо что-то упустил. Теперь вижу - действительно всё работает. Супер!
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся. Best regards! 2008 © Roman V. Brooks |
|
|