Avatar billede fangel Nybegynder
29. april 2004 - 16:45 Der 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

<a href="....." onContextmenu="showMinMenu('param1', 'param2', 'param3'); return true;">...</a>

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...

Morten
Avatar billede olebole Juniormester
29. april 2004 - 17:01 #1
<ole>

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|

/mvh
</bole>
Avatar billede fangel Nybegynder
29. april 2004 - 17:34 #2
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...

Morten
Avatar billede fangel Nybegynder
29. april 2004 - 17:38 #3
og hvordan man disabler den normale context-menu (<body oncontextmenu="return false;"> ??)

Morten
Avatar billede fangel Nybegynder
29. april 2004 - 18:30 #4
OK, nu er jeg kommet _noget_ af vejen...

http://con3.fangel.linux.dk/admin/JS-tests.html

Men jeg kan ikke rigtigt bruge onRightClick som event-handler på linket, hvorfor ik?

Morten
Avatar billede grunken Nybegynder
29. april 2004 - 23:49 #5
nu virker dit link ikke , og jeg er som sædvanligt lidt sløv foroven :o)

men som olebole er inde på....er det ikke sådan noget ligende det her ?

<html>
<head>
<style type="text/css">
#menu
{
border:1px solid #c0c0c0;
position:absolute;
background-color:#ffffff;
display:none;
}

#menu a{
text-decoration:none;
color:#000;
display:block;
}

#menu a:hover{
background-color:#1A01D9;
color:#fff;
}
</style>



<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

  if(k>=2){
  str=""
    for(i=2;i<a.length;i++){
    str+="<a href=\"#\" \onclick=\"window.open('"+a[1]+""+a[i]+"');\"><b>"+a[i]+"</b></a>";
  }
  m.style.display = "inline";
  m.innerHTML = str;
  m.style.top = y+"px";
  m.style.left = x+"px";
  mstatus=true;
}
}
</script>
</head>

<body>
<div id="menu"></div>
<a href="link1.html" onmousedown="menus(event,'createdir.php?dir=','billeder','heste','hunde');">Lav Biblo</a><br/>
<a href="link2.html" onmousedown="menus(event,'deletedir.php?dir=','flodheste','gnuer','delfiner');">Slet Biblo</a><br/>
</body>
</html
Avatar billede olebole Juniormester
30. april 2004 - 00:49 #6
Du skal vel bruge oncontextmenu-event'en ... noget à la:

<a href="#" oncontextmenu="visMinMenu('argument1', 'argument2');event.cancelBubble=true;return false;">

... og så en vis/skjul ting :)
Avatar billede fangel Nybegynder
30. september 2004 - 22:56 #7
lukker... (hvis du vil have point så brok dig, så får du det)

Morten
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester