crossbrowser contextmenu
sam
- javascript
0 wahsaga0 dutsh_shulz
hallo
kennt jemand von euch ein einfaches context menu script, das durch den befehl oncontextmenu im a-tag aufgerufen wird und möglichst leicht zu modifizieren ist (zusätzliche parameter übergeben).
was auch noch wichtig ist, dass es sowohl im ie wie auch im firefox(mozilla) läuft.
danke im voraus
greeeez sam
hi,
kennt jemand von euch ein einfaches context menu script, das durch den befehl oncontextmenu im a-tag aufgerufen wird und möglichst leicht zu modifizieren ist (zusätzliche parameter übergeben).
was auch noch wichtig ist, dass es sowohl im ie wie auch im firefox(mozilla) läuft.
gerade in letzterem dürften viele user das abfangen des rechtsklicks ganz untersagt haben.
gruß,
wahsaga
hallo
kennt jemand von euch ein einfaches context menu script, das durch den befehl oncontextmenu im a-tag aufgerufen wird und möglichst leicht zu modifizieren ist (zusätzliche parameter übergeben).
was auch noch wichtig ist, dass es sowohl im ie wie auch im firefox(mozilla) läuft.
danke im voraus
greeeez sam
hoff, dass hilft dir weiter ;-)
// Nur für IE 5+ und NN 6+
ie5=(document.getElementById && document.all && document.styleSheets)?1:0;
nn6=(document.getElementById && !document.all)?1:0;
// Kontextmenü initialisieren
if (ie5 || nn6) {
menuWidth=122, menuHeight=183;
menuStatus=0;
document.write(
"<div id='menu' style='position:absolute;top:-250;left:0;z-index:100'>"
+"<table width='"+menuWidth+"' height='"+menuHeight+"'>"
+"<tr><td><a href='javascript:history.back()'>Zurück</a></td></tr>"
+"<tr><td><a href='javascript:history.forward()'>Vorwärts</a></td></tr>"
+"<tr><td><a href='javascript:location.reload()'>Aktualisieren</a></td></tr>"
+"<tr><td><a href='javascript:viewSource()'>Quelltext</a></td></tr>"
+"<tr><td><a href='javascript:print()'>Drucken</a></td></tr>"
+"<tr><td><a href='javascript:openFrameInNewWindow()'>Neues Fenster</a></td></tr>"
+"</table></div>");
// Rechter Mausklick: Menü anzeigen, linker Mausklick: Menü verstecken
document.oncontextmenu=showMenu; //oncontextmenu geht nicht bei NN 6.01
document.onmouseup=hideMenu;
}
// Kontextmenü anzeigen
function showMenu(e) {
if(ie5) {
if(event.clientX>menuWidth) xPos=event.clientX-menuWidth+document.body.scrollLeft;
else xPos=event.clientX+document.body.scrollLeft;
if (event.clientY>menuHeight) yPos=event.clientY-menuHeight+document.body.scrollTop;
else yPos=event.clientY+document.body.scrollTop;
}
else {
if(e.pageX>menuWidth+window.pageXOffset) xPos=e.pageX-menuWidth;
else xPos=e.pageX;
if(e.pageY>menuHeight+window.pageYOffset) yPos=e.pageY-menuHeight;
else yPos=e.pageY;
}
document.getElementById("menu").style.left=xPos;
document.getElementById("menu").style.top=yPos;
menuStatus=1;
return false;
}
// Kontextmenü verstecken
function hideMenu(e) {
if (menuStatus==1 && ((ie5 && event.button==1) || (nn6 && e.which==1))) {
setTimeout("document.getElementById('menu').style.top=-250",250);
menuStatus=0;
}
}
// Quelltext anzeigen
function viewSource() {
var w=window.open("view-source:"+window.location,'','resizable=1,scrollbars=1');
}
// Seite in neuem Fenster öffnen
function openFrameInNewWindow() {
var w=window.open(window.location,'','resizable=1,scrollbars=1,status=1');