29. april 2004 - 16:45Der er
6 kommentarer og 1 løsning
Egen Context-menu i både Moz og IE
Hej
Har brug for at kunne lave min egen context-menu (højre-kliks menu)... det skal være på en række A HREF, tags, hvor jeg tænkte jeg ville lave noget ala
Da jeg har brug for at overfører nogle parametre til context-menuen (da 'knapperne' i context-menuen skal kalde nogle andre JS funktioner med de parametre... (window.open('createdir.php?dir=' + param1, 'createdir', '...')
Hvordan laves dette? jeg ved man kan da fx 'Fundanemt' (CMS system) har klaret det... det skal helst benytte browserens egen context-menu...
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Du kan aldrig komme til at bruge browserens egen kontekstmenu. Det eneste, du kan gøre, er at lave et lag, der kan vises og skjules. I det kan du lægge links eller divs med en onclick-handler på. Det kan let gå hen og blive en mother at scripte, hvis den skal virke (og virke godt) i både Moz og IE :o|
hmm - ok... har du en ide til hvordan dette nemmest laver... gætter på noget ala dette (mig og js er ikke _SÅ_ gode venner)
en funktion til at modtage open/hide kald, open kaldene sætter så nogle globale JS variabler med parametrene... funktionen finder så musens position (hvordan gøres dette?), og positionere et div derhen hvor musen er...
når layeret er åben sættes en var. til 'true, og der tjekkes på alle museklik om denne er true, hvis den er, og musen ikke er inden for layeret skjules layeret igen... hvis det er indenfor layeret og på et af de links der er i layeret, så udføres handling og layeret skjules...
Har jeg nogen lunde ret?
mangler i hvert fald lige at finde ud af hvordan man finder musens position...
<script type="text/javascript"> var mstatus=false document.oncontextmenu=function(){return false}; document.onclick = function(){if(mstatus){document.getElementById('menu').style.display="none";mstatus=false}};
function menus(e){ if(!e)e=window.event var a=menus.arguments,m=document.getElementById('menu'),k=(e.which)?e.which:e.button,x=(e.clientX)?e.clientX:e.screenX,y=(e.clientY)?e.clientY:e.screenY
lukker... (hvis du vil have point så brok dig, så får du det)
Morten
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.