Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Liens
/
liste
:
code016.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tree Viewer avec menu contextuel</title> <style> .context-menu { display: none; position: absolute; background-color: #fff; border: 1px solid #ccc; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); z-index: 1000; } .context-menu ul { list-style: none; padding: 0; margin: 0; } .context-menu ul li { padding: 10px; cursor: pointer; } .context-menu ul li:hover { background-color: #f0f0f0; } .list-item-span { display: inline-block; padding: 5px; cursor: pointer; } .list-title { font-weight: bold; margin-bottom: 10px; display: block; cursor: pointer; } .list-content { display: none; margin-left: 20px; } .context-menu-link { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 200px; /* Ajustez cette valeur selon vos besoins */ } .context-menu-link a { text-decoration: none; } </style> </head> <body> <h1>Tree Viewer avec menu contextuel</h1> <div class="list-container"> <span class="list-title" data-list="list1">Liste 1 (10 éléments)</span> <ul id="list1" class="list-content"> <li><span class="list-item-span">Élément 1</span></li> <li><span class="list-item-span">Élément 2</span></li> <li><span class="list-item-span">Élément 3</span></li> <li><span class="list-item-span">Élément 4</span></li> <li><span class="list-item-span">Élément 5</span></li> <li><span class="list-item-span">Élément 6</span></li> <li><span class="list-item-span">Élément 7</span></li> <li><span class="list-item-span">Élément 8</span></li> <li><span class="list-item-span">Élément 9</span></li> <li><span class="list-item-span">Élément 10</span></li> </ul> </div> <div class="list-container"> <span class="list-title" data-list="list2">Liste 2 (4 éléments)</span> <ul id="list2" class="list-content"> <li><span class="list-item-span">Élément 1</span></li> <li><span class="list-item-span">Élément 2</span></li> <li><span class="list-item-span">Élément 3</span></li> <li><span class="list-item-span">Élément 4</span></li> </ul> </div> <div class="list-container"> <span class="list-title" data-list="list3">Liste 3 (7 éléments)</span> <ul id="list3" class="list-content"> <li><span class="list-item-span">Élément 1</span></li> <li><span class="list-item-span">Élément 2</span></li> <li><span class="list-item-span">Élément 3</span></li> <li><span class="list-item-span">Élément 4</span></li> <li><span class="list-item-span">Élément 5</span></li> <li><span class="list-item-span">Élément 6</span></li> <li><span class="list-item-span">Élément 7</span></li> </ul> </div> <div id="contextMenu" class="context-menu"> <ul> <li onclick="handleOption1()">Option 1</li> <li onclick="handleOption2()">Option 2</li> <li onclick="handleOption3()">Option 3</li> <li id="contextMenuLink" class="context-menu-link"><a href="#">Lien vers une autre page</a></li> </ul> </div> <script> const contextMenu = document.getElementById('contextMenu'); const listItemSpans = document.querySelectorAll('.list-item-span'); const listTitles = document.querySelectorAll('.list-title'); const contextMenuLink = document.getElementById('contextMenuLink').querySelector('a'); listTitles.forEach(title => { title.addEventListener('click', (event) => { const listId = title.getAttribute('data-list'); const listContent = document.getElementById(listId); if (listContent.style.display === 'none' || listContent.style.display === '') { listContent.style.display = 'block'; } else { listContent.style.display = 'none'; } }); }); listItemSpans.forEach(span => { span.addEventListener('contextmenu', (event) => { event.preventDefault(); const listTitle = span.closest('.list-container').querySelector('.list-title').textContent; const itemText = span.textContent; contextMenuLink.href = `otherpage.php?list=${encodeURIComponent(listTitle)}&item=${encodeURIComponent(itemText)}`; contextMenu.style.display = 'block'; contextMenu.style.left = `${event.pageX}px`; contextMenu.style.top = `${event.pageY}px`; }); }); document.addEventListener('click', (event) => { if (!contextMenu.contains(event.target) && !event.target.matches('.list-item-span')) { contextMenu.style.display = 'none'; } }); document.addEventListener('keydown', (event) => { if (event.key === 'Escape' || event.keyCode === 27) { contextMenu.style.display = 'none'; } }); function handleOption1() { alert('Option 1 sélectionnée'); contextMenu.style.display = 'none'; } function handleOption2() { alert('Option 2 sélectionnée'); contextMenu.style.display = 'none'; } function handleOption3() { alert('Option 3 sélectionnée'); contextMenu.style.display = 'none'; } </script> </body> </html>