Всем привет, я программирую в VB и мне потребовалось интегрировать в exeшник java script выподающего меню для автоматического создания списка имеющихся файлов на сервере через программу в виде выподающего меню. Так вот скрипт я подобрал, все сделал, но! Начальству не понравилось что меню выпадает при наведении, им требуется чтобы список файлов появлялси при нажатии на папку, вот в этом и встала вся проблема, я сам с JAVA на Вы и поэтому самому никак. Вот, прошу помощи 1) Сделать чтобы список файлов выподал при нажатии на папку и закрывался при нажатии Вот пример скрипта сгенерированного программой: http://rfmesi.ru/e-lib/?page=up Коротко сам скрипт:
| Код | <HTML> <HEAD> <TITLE>JavaScript Menu</TITLE> <STYLE TYPE="text/css"> /* Стили для ссылок в выпадающем меню */ .common { display:block; float:left; clear:left; color:#666; font:12px arial; } .parent { display:block; float:left; clear:both; color:#66AA66; font:12px arial; } .level_1 {padding-left:0;} .level_2 {padding-left:30px;} .level_3 {padding-left:60px;} </STYLE> <script TYPE="text/javascript"> // ****************** // Объект-массив c информацией о меню // ****************** var menuArray = { 'DHTML' : [ 'DHTML', { 'DHTML/_023.htm' : [ '1) _023.htm'], 'DHTML/_029.htm' : [ '2) _029.htm'], 'DHTML/Меню без фреймов.htm' : [ '3) Меню без фреймов.htm'] }], 'Интернет приложение' : [ 'Интернет приложение', { 'Интернет приложение/3472.png' : [ '1) 3472.png'], 'Интернет приложение/frmBrowser.frm' : [ '2) frmBrowser.frm'], 'Интернет приложение/frmBrowser.frx' : [ '3) frmBrowser.frx'], 'Интернет приложение/frmMain.frm' : [ '4) frmMain.frm'], 'Интернет приложение/Module1.bas' : [ '5) Module1.bas'], 'Интернет приложение/ZeKBrowseR.exe' : [ '6) ZeKBrowseR.exe'], 'Интернет приложение/ZeKBrowseR.vbp' : [ '7) ZeKBrowseR.vbp'], 'Интернет приложение/ZeKBrowseR.vbw' : [ '8) ZeKBrowseR.vbw'] }], 'Поиск и удаление всех файлов по шаблону' : [ 'Поиск и удаление всех файлов по шаблону', { 'Поиск и удаление всех файлов по шаблону/Form1.frm' : [ '1) Form1.frm'], 'Поиск и удаление всех файлов по шаблону/Form1.frx' : [ '2) Form1.frx'], 'Поиск и удаление всех файлов по шаблону/KillAllFileS.exe' : [ '3) KillAllFileS.exe'], 'Поиск и удаление всех файлов по шаблону/Project1.vbp' : [ '4) Project1.vbp'], 'Поиск и удаление всех файлов по шаблону/Project1.vbw' : [ '5) Project1.vbw'] }]} // ****************** // Глобальные переменные для работы функций // ****************** var menuWaitTimer = {}; var menuOpenedCount = 0; // ****************** // Функция формирования HTML-кода меню и вывода на страницу // ****************** function drawJSMenu(containerId, hash, path) { // ----------- Константы ------------ var commonClassName = "common"; var parentClassName = "parent"; var levelClassPrefix = "level_"; var menuWaitInterval = 500; // ms // ----------- Переменные ------------ var container = document.getElementById(containerId); var html = _class = mouseOverOut = id = ""; var i; var idArray = [] // ----------- Функции ------------ // Рекурсивная функция для прохождения по мно var cicleFunc = function(code, hash, level, parentId) { if (typeof level != "undefined" && level != 1) code += "<span id='b" + parentId + "' style='display:none;'>\n"; for (i in hash) { var randId = parseInt(Math.random() * 1e10).toString() + parseInt(Math.random() * 1e10); _class = ((typeof hash[i][1] != "undefined") ? parentClassName : commonClassName) + " " + levelClassPrefix + level; if (typeof hash[i][1] != "undefined") { id = " id='a" + randId + "'"; idArray.push(randId); } else id = 0; code += "<a" + (id ? id : "") + " class='" + _class + "' href='" + path + i + "'>" + hash[i][0] + "</a>\n"; if (typeof hash[i][1] != "undefined") code += cicleFunc(html, hash[i][1], level+1, randId); } if (typeof level != "undefined" && level != 1) code += "</span>\n"; return code; } // ----------- Добавление HTML-кода меню на страницу ------------ html = cicleFunc(html, hash, 1); container.innerHTML = html; // ----------- Добавление обработчиков событий ------------ for (i = 0; i < idArray.length; i++) { document.getElementById("a" + idArray[i]).onmouseover = function() { menuOpenedCount++; var absId = this.id.substring(1, this.id.length); document.getElementById("b" + absId).style.display = ""; } document.getElementById("a" + idArray[i]).onmouseout = function() { menuOpenedCount--; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] == "undefined" || menuWaitTimer[absId] == null) { menuWaitTimer[absId] = setInterval("hideJSMenu('" + absId + "')", menuWaitInterval); } } document.getElementById("b" + idArray[i]).onmouseover = function() { menuOpenedCount++; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] != "undefined") { clearInterval(menuWaitTimer[absId]); menuWaitTimer[absId] = null; } } document.getElementById("b" + idArray[i]).onmouseout = function() { menuOpenedCount--; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] == "undefined" || menuWaitTimer[absId] == null) { menuWaitTimer[absId] = setInterval("hideJSMenu('" + absId + "')", menuWaitInterval); } } } }
// ****************** // Функция для убирания выпадушек, запускается по таймауту // ****************** function hideJSMenu(id) { if (menuOpenedCount <= 0) { menuOpenedCount = 0; if (typeof menuWaitTimer[id] != "undefined") { clearInterval(menuWaitTimer[id]); menuWaitTimer[id] = null; } if (document.getElementById("b" + id)) { document.getElementById("b" + id).style.display = "none"; } } } </SCRIPT> </HEAD> <BODY> <script TYPE="text/javascript"> document.write ( "<table width='30%'><tr><td style='border:1px solid #FFF;' id='containerId'></td></tr></table>" ); drawJSMenu("containerId", menuArray, "/"); </SCRIPT> </BODY> </HTML>
|
- это срипт неработающий, но понятный из за рускоязычных ссылок, а вот с преобразованными ссылками:
| Код | <HTML> <HEAD> <TITLE>JavaScript Menu</TITLE> <STYLE TYPE="text/css"> /* Стили для ссылок в выпадающем меню */ .common { display:block; float:left; clear:left; color:#666; font:12px arial; } .parent { display:block; float:left; clear:both; color:#66AA66; font:12px arial; } .level_1 {padding-left:0;} .level_2 {padding-left:30px;} .level_3 {padding-left:60px;} </STYLE> <script TYPE="text/javascript"> // ****************** // Объект-массив c информацией о меню // ****************** var menuArray = { 'DHTML' : [ 'DHTML', { 'DHTML/_023.htm' : [ '1) _023.htm'], 'DHTML/_029.htm' : [ '2) _029.htm'], 'DHTML/%CC%E5%ED%FE%20%E1%E5%E7%20%F4%F0%E5%E9%EC%EE%E2.htm' : [ '3) Меню без фреймов.htm'] }], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5' : [ 'Интернет приложение', { '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/3472.png' : [ '1) 3472.png'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/frmBrowser.frm' : [ '2) frmBrowser.frm'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/frmBrowser.frx' : [ '3) frmBrowser.frx'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/frmMain.frm' : [ '4) frmMain.frm'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/Module1.bas' : [ '5) Module1.bas'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/ZeKBrowseR.exe' : [ '6) ZeKBrowseR.exe'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/ZeKBrowseR.vbp' : [ '7) ZeKBrowseR.vbp'], '%C8%ED%F2%E5%F0%ED%E5%F2%20%EF%F0%E8%EB%EE%E6%E5%ED%E8%E5/ZeKBrowseR.vbw' : [ '8) ZeKBrowseR.vbw'] }], '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3' : [ 'Поиск и удаление всех файлов по шаблону', { '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3/Form1.frm' : [ '1) Form1.frm'], '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3/Form1.frx' : [ '2) Form1.frx'], '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3/KillAllFileS.exe' : [ '3) KillAllFileS.exe'], '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3/Project1.vbp' : [ '4) Project1.vbp'], '%CF%EE%E8%F1%EA%20%E8%20%F3%E4%E0%EB%E5%ED%E8%E5%20%E2%F1%E5%F5%20%F4%E0%E9%EB%EE%E2%20%EF%EE%20%F8%E0%E1%EB%EE%ED%F3/Project1.vbw' : [ '5) Project1.vbw'] }]} // ****************** // Глобальные переменные для работы функций // ****************** var menuWaitTimer = {}; var menuOpenedCount = 0; // ****************** // Функция формирования HTML-кода меню и вывода на страницу // ****************** function drawJSMenu(containerId, hash, path) { // ----------- Константы ------------ var commonClassName = "common"; var parentClassName = "parent"; var levelClassPrefix = "level_"; var menuWaitInterval = 500; // ms // ----------- Переменные ------------ var container = document.getElementById(containerId); var html = _class = mouseOverOut = id = ""; var i; var idArray = [] // ----------- Функции ------------ // Рекурсивная функция для прохождения по мно var cicleFunc = function(code, hash, level, parentId) { if (typeof level != "undefined" && level != 1) code += "<span id='b" + parentId + "' style='display:none;'>\n"; for (i in hash) { var randId = parseInt(Math.random() * 1e10).toString() + parseInt(Math.random() * 1e10); _class = ((typeof hash[i][1] != "undefined") ? parentClassName : commonClassName) + " " + levelClassPrefix + level; if (typeof hash[i][1] != "undefined") { id = " id='a" + randId + "'"; idArray.push(randId); } else id = 0; code += "<a" + (id ? id : "") + " class='" + _class + "' href='" + path + i + "'>" + hash[i][0] + "</a>\n"; if (typeof hash[i][1] != "undefined") code += cicleFunc(html, hash[i][1], level+1, randId); } if (typeof level != "undefined" && level != 1) code += "</span>\n"; return code; } // ----------- Добавление HTML-кода меню на страницу ------------ html = cicleFunc(html, hash, 1); container.innerHTML = html; // ----------- Добавление обработчиков событий ------------ for (i = 0; i < idArray.length; i++) { document.getElementById("a" + idArray[i]).onmouseover = function() { menuOpenedCount++; var absId = this.id.substring(1, this.id.length); document.getElementById("b" + absId).style.display = ""; } document.getElementById("a" + idArray[i]).onmouseout = function() { menuOpenedCount--; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] == "undefined" || menuWaitTimer[absId] == null) { menuWaitTimer[absId] = setInterval("hideJSMenu('" + absId + "')", menuWaitInterval); } } document.getElementById("b" + idArray[i]).onmouseover = function() { menuOpenedCount++; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] != "undefined") { clearInterval(menuWaitTimer[absId]); menuWaitTimer[absId] = null; } } document.getElementById("b" + idArray[i]).onmouseout = function() { menuOpenedCount--; var absId = this.id.substring(1, this.id.length); if (typeof menuWaitTimer[absId] == "undefined" || menuWaitTimer[absId] == null) { menuWaitTimer[absId] = setInterval("hideJSMenu('" + absId + "')", menuWaitInterval); } } } }
// ****************** // Функция для убирания выпадушек, запускается по таймауту // ****************** function hideJSMenu(id) { if (menuOpenedCount <= 0) { menuOpenedCount = 0; if (typeof menuWaitTimer[id] != "undefined") { clearInterval(menuWaitTimer[id]); menuWaitTimer[id] = null; } if (document.getElementById("b" + id)) { document.getElementById("b" + id).style.display = "none"; } } } </SCRIPT> </HEAD> <BODY> <script TYPE="text/javascript"> document.write ( "<table width='30%'><tr><td style='border:1px solid #FFF;' id='containerId'></td></tr></table>" ); drawJSMenu("containerId", menuArray, "/"); </SCRIPT> </BODY> </HTML>
|
- этот скрипт полностью рабочий, кстати каму понадобится такая программа могу поделиться, пишите на zek0072@rambler или в личку на моем сайте http://www.FreeZeK.UcoZ.Ru - ник @ZeK@ |