imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 31.08.2004, 03:43     # 1
WMRomik
Full Member
 
Аватар для WMRomik
 
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573

WMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik Сэнсэй
ID="Уникальное_Имя" через JavaScript - Помогите!

Прошу прощения, но снова я вляпался в проблему...
смысл которой илюстрируется в приклееном архивчике и является таковой:
шаблон генерирует мне таблицу с именем паки или файла, а так же ссылку к ней и, помимо того, генерирует скрытый слой с описанием ссылки, если таковое описание было задано.

Проблема как-раз в этом скрытом слое порылась.
Т.е. если у меня на странице более чем одно описание, то для всех ссылок отображается лишь то, которое ближе к верху, происходит это потому, что скрытый слой генерируется с одним и тем же "ID" для всех ссылок с описанием.

Вот у меня возник вопрос, как заставить этот ID быть уникальным, при том, что ещё и вызов функции открывающей слой был адресован именно тому ID к которому относится?

Насколько я пониманию, силами JavaScript это сделать можно, но у меня никак не выходит каменный цветок...

Пожалуйста, помогите!
Вложения
Тип файла: zip myProblem.zip (6.8 Кбайт, 6 просмотров - Кто скачивал? )
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся.

Best regards!

2008 © Roman V. Brooks
WMRomik вне форума  
Старый 31.08.2004, 07:46     # 2
Ale
Junior Member
 
Регистрация: 22.03.2004
Сообщения: 123

Ale Известность не заставит себя ждатьAle Известность не заставит себя ждать
Почему скрипт, котор генерирует хтмл не может генерить уникальные 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 вне форума  
Старый 31.08.2004, 11:22     # 3
WMRomik
Full Member
 
Аватар для WMRomik
 
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573

WMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik Сэнсэй
Ale
Спасибо.
В принципе мне такая мысль в голову приходила, но есть некоторые проблемы с реализацией такого подхода:
1. Длина описания может составлять 255 знаков. Умножаем на три...
2. Само описание может содержать html форматирование и уже не обработается.
3. Выглядит этот метод, как бы сказать правильно, не так, как мог бы...

Я понимаю, что именно в этом направлении нужно двигаться, но не описание целиком подставлять. Нужно что-то короткое и элегантное.

т.е. я как пёсик, всё понимаю, но сказать не могу...
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся.

Best regards!

2008 © Roman V. Brooks
WMRomik вне форума  
Старый 31.08.2004, 16:01     # 4
Ale
Junior Member
 
Регистрация: 22.03.2004
Сообщения: 123

Ale Известность не заставит себя ждатьAle Известность не заставит себя ждать
Цитата:
1. Длина описания может составлять 255 знаков. Умножаем на три...
На 3 не надо - tc() не использует id

Цитата:
Нужно что-то короткое и элегантное.
FILENAME? Не знаю откуда берутся / как хранятся описания ("Описание касающееся паки №3") и FILENAME ("папка №3)

Цитата:
2. Само описание может содержать html форматирование и уже не обработается.
Тада можно все упростить - хранить в описании весь кусок html-кода к этому описанию/лэеру относящийся (от <tr до </tr>). Это самый простой вариант, но изячности в нем тоже нету

Цитата:
3. Выглядит этот метод, как бы сказать правильно, не так, как мог бы...
Можно облагородить: поместить описания в массив и выводить циклом. Счетчик цикла будет unique id. html-код для каждой папки/файла повторяется соотв его можно засунуть в js-переменную, этим сократить объем кода. См. аттач. Я исходил из того, что под FILENAME в шаблоне есть такой-же плэйсхолдер как и под описания

НО все же самым правильным (оно же красивым), имхо, было бы формировать и выводить весь этот код не джава-скриптом а пхп
Вложения
Тип файла: rar test.rar (3.6 Кбайт, 1 просмотров - Кто скачивал? )
Ale вне форума  
Старый 31.08.2004, 20:56     # 5
WMRomik
Full Member
 
Аватар для WMRomik
 
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573

WMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik Сэнсэй
Да уж, про ПХП я знаю, но это совершенно другая история. Это не веб-сайт, это темплэйт генерируемый программой 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="">&nbsp;&nbsp;<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="">&nbsp;&nbsp;<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="">&nbsp;&nbsp;<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
WMRomik вне форума  
Старый 01.09.2004, 01:35     # 6
Ale
Junior Member
 
Регистрация: 22.03.2004
Сообщения: 123

Ale Известность не заставит себя ждатьAle Известность не заставит себя ждать
Звиняй, нет возможности подробно вникать в hfs. Есть возможность вносить изменения в кусочек котор ты привел? Если да, попробуй так:

Код:
function randomID() {
	id=''
	max_len=8
	while (max_len) {r=Math.round(Math.random()*10); id+=r; max_len--}
	return id
}
Функция генерит уникальный id (8 знаков) из случайных цифр. Ее ессно в head

В блоке [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>
Не идеальный способ, но должен работать. Кстати, у тебя симпатичный темпл получается
Ale вне форума  
Старый 01.09.2004, 02:01     # 7
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Предлагаю в данном случае обращаться к описанию не по ID, а ОТНОСИТЕЛЬНО вызова функции показа комментария, я так понял что структура докмента строго задается, тогда это становится вполне возможно.

Я проверял под Моззилой только, и мне лень писать для такого количества браузеров, но идея я думаю ясна. Вот мой пример решения данной задачи, обрати внимание на обращение к комментарию в функции getLayer(layerName), а также на вызов вункции onmousemove="ts(event,this)", вместо onmousemove="ts(event,'t_screen')".
Вложения
Тип файла: zip myRealisation.zip (7.3 Кбайт, 3 просмотров - Кто скачивал? )
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 01.09.2004, 02:24     # 8
WMRomik
Full Member
 
Аватар для WMRomik
 
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573

WMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik Сэнсэй
Уфф... Ale
Именно это мне и было нужно!
Огроменное спасибо!
Всё прекрасно работает.

А я дурак пытался через скрытые поля формы передать сгенерерованные ID.

Hubbitus
Работает в отрисованной странице, без проблем. Но в реальных условиях почему-то отказ... Жаль. А идея хорошая. Нужно будет подумать над ней. Спасибо!
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся.

Best regards!

2008 © Roman V. Brooks
WMRomik вне форума  
Старый 01.09.2004, 22:24     # 9
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
WMRomik:
Работает в отрисованной странице, без проблем. Но в реальных условиях почему-то отказ... Жаль. А идея хорошая. Нужно будет подумать над ней. Спасибо!
Что значит в реальных условиях отказ? Под разные браузеры я просто не писал, я привел лишь пример реализации в DOM, а вообще идея д.б. какраз универсальной, тоесть ты ссылаешься не на какой-то конкретный слой/элемент, а относительно, например на "ближайший комментарий".

Хотя решать тебе конечно.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 01.09.2004, 23:23     # 10
WMRomik
Full Member
 
Аватар для WMRomik
 
Регистрация: 25.11.2001
Адрес: Moscow. Russia
Пол: Male
Сообщения: 573

WMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik СэнсэйWMRomik Сэнсэй
Hubbitus
Прошу прощения. Я видимо что-то упустил. Теперь вижу - действительно всё работает.
Супер!
__________________
Ничто не даётся нам с таким трудом, как то, что не даётся.

Best regards!

2008 © Roman V. Brooks
WMRomik вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:58.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.