HighDots Forums  

Frage zu contextmenu

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Frage zu contextmenu in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Brian Schmalisch
 
Posts: n/a

Default Frage zu contextmenu - 08-07-2007 , 10:55 AM






Hallo,

ich wollte ein Kontextmenü über einem div-Element mit der id="Haupt" öffnen.
Dazu habe ich folgendes in meinem Script stehen (IE 7):

document.write(
"<style type='text/css'>"+
"a.menu {text-decoration:none;font-family:Verdana,Arial;font-size:80%}"+
"a.menu:link,a.menu:visited {text-decoration:none;color:#F0F8FF}"+
"a.menu:hover,a.menu:active
{text-decoration:none;background-color:#F0F8FF;color:#000040}"+
"hr.menu
{border:0px;height:1px;background-color:#B0C4DE;color:#B0C4DE}</style>"+
"<div id='menu' style='position:absolute;top:-250;left:0;z-index:100'>"+
"<table cellpadding='5' cellspacing='0' width='"+menuWidth+"'
height='"+menuHeight+"'
style='border-styleutset;border-width:1;border-color:#3a6c96;background-color:#4682B4'>"+
"<tr><td><a class='menu'
href='javascript:history.back()'"+oF+">&nbsp;Zur&u uml;ck"+sp5+sp5+sp2+"</a></td></tr>"+
"</table></div>");

document.getElementById("Haupt").oncontextmenu=sho wMenu;
document.getElementById("Haupt").onmouseup=hideMen u;


Bei document.oncontextmenu=showMenu; und document.onmouseup=hideMenu;
funktioniert das Kontextmenü, jedoch überall. Es soll aber nur über dem <DIV
....> angezeigt werden.

mfg

Brian



Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Frage zu contextmenu - 08-07-2007 , 12:55 PM






Brian Schmalisch wrote:
Quote:
ich wollte ein Kontextmenü über einem div-Element mit der id="Haupt" öffnen.
Dazu habe ich folgendes in meinem Script stehen (IE 7):
Der kann das, was Du ihm weiter unten in den Parser wirfst. Obwohl das
generierte Markup völlig ungültig ist, und gar nicht funktionieren darf.

Wende http://validator.w3.org/ und http://jigsaw.w3.org/css-validator/ auf
ein HTML-Dokument an, in dem genau das stünde, wenn untenstehende Anweisung
ausgeführt würde (den ETAGO-Fehler dafür ignorieren).

Quote:
document.write(
"<style type='text/css'>"+
"a.menu {text-decoration:none;font-family:Verdana,Arial;font-size:80%}"+
"a.menu:link,a.menu:visited {text-decoration:none;color:#F0F8FF}"+
"a.menu:hover,a.menu:active
{text-decoration:none;background-color:#F0F8FF;color:#000040}"+
"hr.menu
{border:0px;height:1px;background-color:#B0C4DE;color:#B0C4DE}</style>"+
"<div id='menu' style='position:absolute;top:-250;left:0;z-index:100'>"+
"<table cellpadding='5' cellspacing='0' width='"+menuWidth+"'
height='"+menuHeight+"'
style='border-styleutset;border-width:1;border-color:#3a6c96;background-color:#4682B4'>"+
"<tr><td><a class='menu'
href='javascript:history.back()'"+oF+">&nbsp;Zur&u uml;ck"+sp5+sp5+sp2+"</a></td></tr>"+
"</table></div>");
Falls sich das innerhalb eines Script-Elements befindet, musst Du "</"
(ETAGO) maskieren, am besten mit "<\/".

Quote:
document.getElementById("Haupt").oncontextmenu=sho wMenu;
document.getElementById("Haupt").onmouseup=hideMen u;
Und, wo sind showMenu() und hideMenu()? Ist das hier ein Ratespiel? [dsf 1.17]

Abgesehen davon solltest Du wenigstens testen, ob document.getElementById()
überhaupt eine DOM-Objektreferenz liefert. Und dann den restlichen
Referenzwurm teilen und jeden Teil testen.

http://pointedears.de/scripts/test/whatami

Quote:
Bei document.oncontextmenu=showMenu; und document.onmouseup=hideMenu;
funktioniert das Kontextmenü, jedoch überall. Es soll aber nur über dem <DIV
...> angezeigt werden.
Sollten die Quelltextreparatur und die Feature-Tests unwahrscheinlicherweise
das Problem nicht beheben, könnte Event Bubbling eine Lösung sein. Im
MSHTML-DOM jedenfalls blubbern sowohl `oncontextmenu' als auch `onmouseup'.

http://msdn2.microsoft.com/en-us/library/ms536914.aspx
http://msdn2.microsoft.com/en-us/library/ms536950.aspx


PointedEars
--
Mozilla ist ein Webbrowser. Das ist ein Programm, dass es ermoeglicht,
Webseiten anzusehen. Das ist nicht sowas wie ein Programm, das es
Webdesignern erlaubt, den Nutzer zu belaestigen, indem man seine
Arbeitsumgebung unsinnig manipuliert. (Boris 'pi' Piwinger in dcljs)


Reply With Quote
  #3  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Frage zu contextmenu - 08-19-2007 , 06:28 AM



Georg Maaß wrote:
Quote:
Thomas 'PointedEars' Lahn wrote:
Brian Schmalisch wrote:
ich wollte ein Kontextmenü über einem div-Element mit der id="Haupt" öffnen.
Dazu habe ich folgendes in meinem Script stehen (IE 7):
Der kann das, was Du ihm weiter unten in den Parser wirfst. Obwohl das
generierte Markup völlig ungültig ist, und gar nicht funktionieren darf.
===========================
Daß das nicht funktionieren darf, ist blanker Unsinn.
Nein, ist es nicht. Das style-Element hat im body-Element nichts zu suchen.
Ebenso erfordern CSS-Längen eine Einheit. Ein UA, der das jeweils
interpretiert (statt verwirft), ist kaputt.


PointedEars
--
Der erfahrene IE-Fahrer weiß, daß man Slalom am besten im ersten Gang fährt,
weil schnelles Lenkradumreißen bei IE zum Lenkradabreißen führt. Wer
sportlich fahren will, muß Netscape fahren und hin und wieder auch mal
anschieben. ;-) (Georg Maaß in dcljs <amuqrl$91i3q$1 (AT) ID-3551 (DOT) news.dfncis.de>)


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.