Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Browser-Popup Fenster mit rechter Maustaste

Mitglied: zoro17

zoro17 (Level 1) - Jetzt verbinden

27.12.2007, aktualisiert 28.12.2007, 6765 Aufrufe, 8 Kommentare

Hallo zusammen,

hoffe, Ihr hattet soweit schöne Weihnachten. Sie sind leider rum und die täglichen "wichtigen" Fragen tauchen wieder auf

Ich bin am Entwickeln einer Web-Applikation mit Grundwerkzeugen (Javascript/PHP/ASP...).
Da ich möglichst nahe am Erscheinungsbild der Desktop-Applikationen bleiben will, möchte ich das Browser-Menü der rechten Maustaste
selber steuern können. Da ich schon einiges an Javascript und CSS in den Dateien habe, wäre es mir am liebsten, wenn
ich mit der rechten Maustaste ein Popup-Fenster öffnen könnte, dass mein eigenes Menü enthält.

Da der Inhalt des Menüs abhängig davon ist, an welcher Stelle die rechte Maustaste auf der Seite gedrückt wurde, brauche ich eine
gewisse Dynamik bzgl. des Menü-Inhaltes.
Eine statische CSS-Lösung für die Maustaste habe ich schon ( http://chaoslayer.de/-%20test%20-/events.html ), die bringt mich jedoch nur bedingt weiter.

Hat jemand eine Idee?
Vielen Dank für Euer Feedback und Guten Rutsch.
Gruss

Ich vergaß vielleicht zu sagen, dass die Popup-Blocker wahrscheinlich ein Problem hierbei sind. Ein "window.open" bei normalem
Klick ist ja möglich. Ich bräuchte das eben mit der rechten Maustaste. Oder vielleicht doch dynamisches CSS, falls das geht?
Mitglied: Cubic83
27.12.2007 um 22:04 Uhr
Hallo,

das ist so schwer zu sagen.

Entweder Du baust dein Menü dynamisch mit Javascript auf oder du benutzt AJAX um sie zu generieren.

Popup Blocker werden keine Probleme bereiten wenn du mit DIV-Popups arbeitest.

mfG
Bitte warten ..
Mitglied: zoro17
27.12.2007 um 22:09 Uhr
hallo Cubic83,
vielen dank für deine nachricht. weisst du mehr über DIV-Popups? meinst du div-tags, um sie
mittels ajax zu füllen? wäre nicht schlecht, da ich kein css mehr benutzen will, da die seite
schon so viel hat.
gruss
Bitte warten ..
Mitglied: Cubic83
28.12.2007 um 11:25 Uhr
hallo,

das hat nicht wirklich direkt was mit CSS zu tun.

Zunächst musst Du dein Popup designen. Mit oder ohne CSS.
Jetzt hast Du mehrere Möglichkeiten.

1) AJAX
2) Nur Javascript

Auf jeden Fall brauchst Du in der Seite dann:

01.
      <div id="MEINDIVPOPUP" style="visibility:hidden"></div>


Für 1:


Du speichers das Popupdesign als POPUP.PHP ab. In dieser POPUP.PHP wird dann das Popup anhand der Parameter aufgebaut. (Die POPUP.PHP wird ja Parameter empfangen die per GET oder POST ausgelesen werden
können). Das Resultat schreibst Du dann in den <div> Container. Das sieht dann so aus:

01.
 
02.
function GetPopUp() {
03.
 
04.
var External = null;
05.
 
06.
if (typeof XMLHttpRequest != 'undefined') { External = new XMLHttpRequest(); }
07.
  
08.
if (!External) {
09.
    try {
10.
	External  = new ActiveXObject("Msxml2.XMLHTTP");
11.
    } catch(e) {
12.
       try {
13.
           External  = new ActiveXObject("Microsoft.XMLHTTP");
14.
       } catch(e) {
15.
          External  = null;
16.
       }
17.
    }
18.
}
19.
		
20.
if (External) {
21.
     External.open('GET', './POPUP.PHP?a=1&b=2', true);
22.
     External.onreadystatechange = function () {
23.
     if (External.readyState == 4) {
24.
        document.getElementById('MEINDIVPOPUP').innerHTML = External.responseText;
25.
     }
26.
};
27.
External.send(null);
28.
}
29.
 
30.
document.getElementById('MEINDIVPOPUP').style.visibility = 'visible';
31.
}
32.
 
33.
<a href="#" onRightClick="GetPopUp()">Link</a>
34.
 
External.open('GET', './POPUP.PHP?a=1&b=2', true);

Die Parameter für die Variablen a und b übergibts Du dann an die Funktion GetPopUp(). Man lädt also die Ausgabe der PHP Seite "live" in den Div container hinein. Und das bei jedem Aufruf der Datei.


Für 2:


Du schreibst die Tabelle gleich in den Quellcode der Hauptseite rein:

01.
 
02.
<div id="MEINDIVPOPUP" style="visibility:hidden">
03.
 
04.
   <table>
05.
      <tr>
06.
          <td><div id="ITEM1"></div></td>
07.
      </tr>
08.
      <tr>
09.
         <td><div id="ITEM2"></div></td>
10.
      </tr>
11.
   </table>
12.
          
13.
 
14.
</div>
15.
 
Um dann mittels Javascript die innerHTML-Werte von ITEM1 und ITEM2 on the Fly zu generieren.

01.
 
02.
function GetPopUP(a, b) {
03.
   document.getElementById('ITEM1').innerHTML = '<a href="meinlink?a=' + a + '&b=' + b">Eintrag 1</a>';
04.
   document.getElementById('ITEM2').innerHTML = '<a href="meinlink?a=' + a + '&b=' + b">Eintrag 2</a>';
05.
}
06.
 

Wie gesagt ist schwer etwas vorzuschlagen wenn mann die Richtung nicht weiss. Was genau willst Du denn anzeigen? Kannst Du mal ein Beispiel geben?

mfG
Bitte warten ..
Mitglied: zoro17
28.12.2007 um 12:30 Uhr
hallo Cubic83,
vielen dank für deine antwort. ist ja toll, gleich mit code!
was ich mit der rechten maustaste möchte? etwa das gleiche, was man in einer desktop-anwendung
eben so hat. d.h. abhängig von dem objekt, über dem die rechte maustaste gedrückt wird, soll
ein kontextmenü erscheinen, dass zusätzlich funktionen einblendet, die das objekt besitzt.
so ähnlich, wie es in entwicklungsumgebungen wie eclipse oder anderen ist.

beispiel: bei mir geht es hier geht es um eine datenbankanwendung. die ergebnisse einer
db-abfrage werden in einer baumstruktur mit links angezeigt. so soll z.b. es an den knotenpunkten
nicht möglich sein, alle datensätze darunter zu löschen. jedoch an den "blättern" soll die funktion
zum löschen des datensatzes im kontextmenü erscheinen.

ich könnte die ganzen objekt- bzw. link-abhängigen funktionen in ein normales popup-fenster packen,
ich sehe jedoch bei den anwendern immer mehr, dass sie das kontextmenü mit der rechten maustaste
nützen. dabei wird aber das original browser-kontextmenü kaum genützt.

hab mich gestern noch mit div-menüs beschäftigt. es geht schon in diese richtung. ich würde
gerne deine 2. möglichkeit (nur javascript) bevorzugen, da es nicht soviele
browserabhängigkeiten wie bei ajax gibt. jedoch, wenn ich es richtig verstanden habe, kann
ich die anzahl der menüpunkte nicht dynamisch aufbauen oder? (die tabelle mit ihren zeilen
muss schon in der seite stehen)

mein "traum" wäre es, wenn die rechte maustaste eine javascript funktion startet, die dann
mit window.open ein popup als "kontextmenü" öffnet, aber hier greifen die popup-blocker.
dieses menü ließe sich dann auch noch verschieben!
die koordinaten, wo die rechte maustaste gedrückt wurde, habe ich schon.

ich hoffe, es ist jetzt etwas klarer, was mir vorschwebt.
danke und gruss
Bitte warten ..
Mitglied: Cubic83
28.12.2007 um 13:54 Uhr
Also du kannst auch Tabellen dynamisch per Javascript zur Laufzeit verändern oder erstellen.

01.
var Tabelle = document.createElement("table"); 
02.
 
03.
var TR = Tabelle.insertRow(0); 
04.
var TD1 = document.createElement("td"); 
05.
 
06.
var TD1TEXT = document.createTextNode("<b>Hallo</b> Welt"); 
07.
 
08.
TD1.appendChild(TD1TEXT); 
09.
 
10.
TR.appendChild(TD1); 
11.
 
So ungefähr würde das aussehen. Ich nehme aber dann doch immer lieber PHP anstatt Javascript.

Aber es geht natürlich auch beim OnRightClick-Event eine neue Tabelle zu erstellen. Nun kannst Du ja je nach Object beliebig viele Zeilen hinzufügen.

Du musst nur immer darauf achten dass die Objekte auch wirklich schon erstellt wurden, wenn Du darauf zugreifst. Ausserdem am Besten nach dem Schliessen das erstellte Objekt wieder löschen. (Was geschieht wenn der Benutzer nur ne Stunde Kontextmenüs öffnet? Die bleiben sonst die ganze Zeit im Speicher.)

Also persönlich finde ich window.open keine gute Idee. Wie Du selbst bereits gesagt hast, greifen die Popupblocker, die Fenster müssen dann extra positionniert werden, Fenstergrössen stimmen nicht immer, Du musst Fensterübergreifend programmieren, etc.

mfG
Bitte warten ..
Mitglied: zoro17
28.12.2007 um 14:04 Uhr
hallo Cubic83,
du hast recht. beeinflusse gerade mittels javascript/dom ein dropdown feld. das geht prima.
könnte tabelle anlegen und diese dann per dom verändern. kann man diese tabelle auch
positionieren?
wenn du php benutzt, musst du aber kurzzeitig den server bemühen oder?
glaube, bin jetzt nahe dran an dem, was ich wollte.
gruss
Bitte warten ..
Mitglied: Cubic83
28.12.2007 um 14:35 Uhr
Ja, der Server wird kurzzeitig bemüht. Ich habe auch nicht gesagt, dass es eine gute Methode ist ;) Aber ich bin etwas Javascript faul ;)

01.
 
02.
function MoveTableTo(tbl, x, y) {
03.
   tbl.style.visibility = "visible";
04.
   tbl.style.left = x;
05.
   tbl.style.top = y;
06.
   tbl.style.position = "absolute";
07.
}
08.
 
Ist aber jetzt ungetestet .

mfG
Bitte warten ..
Mitglied: zoro17
28.12.2007 um 14:51 Uhr
vielen dank! hab auch schon etwas recherchiert. geht in die gleiche richtung.
das werde ich wohl benutzen. glaube, das ich damit die rechte maustaste gut bedienen kann.
guten rutsch!
gruss
Bitte warten ..
Ähnliche Inhalte
Windows Server
Recht Administrator
gelöst Frage von rudeboyWindows Server8 Kommentare

Hi! Kann mir jemand sagen wie ich das deuten soll? NTFS-Berechtigung Vollzugriff für den Admin aber trotzdem rot ausgekreuzt? ...

VB for Applications
Popup Fenster erstellen
gelöst Frage von TripleFloVB for Applications19 Kommentare

Hallo zusammen, Ich hätte da mal eine Frage. Ich bin kein Spezialist in Sachen programmieren und würde dennoch gerne ...

Outlook & Mail
Outlook 2016 - Windows Sicherheit Popup
Frage von swisstomOutlook & Mail5 Kommentare

Guten Morgen Folgendes Problem: Ich habe bei uns in der Domäne (mit Exchange 2010) auf 3 Clients (Windows 10 ...

Windows 8
Windows Update Popup erscheinen lassen
gelöst Frage von MarabuntaWindows 84 Kommentare

Hallo, Windows8 x64 Nach einem manuellem Update, ist es möglich das Windows Update Popup für den User anzeigen zu ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 4 TagenHumor (lol)6 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 5 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 8 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 8 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Samba
Windows 10 Client in Samba-Domäne hinzufügen scheitert
Frage von diwaffmSamba31 Kommentare

Hi Leute, ich habe einen Samba Server in der Version 4.9.3 auf einer OpenSuse Maschine laufen. Damit sind momentan ...

Windows Server
Kleine Umfrage: Windows Server Desktop oder Core?
Frage von doomfreakWindows Server22 Kommentare

Hey :) Ich wollte mal eine kleine Umfrage hier starten. Ich bin schon etwas länger auf dieser Seite hier ...

Windows Systemdateien
Verknüpfungen nach Pfadwechsel
Frage von Hendrik2586Windows Systemdateien17 Kommentare

Guten Morgen meine lieben Kollegen und Kolleginnen, ich hab da mal eine Frage die Ihr sicher schon kennt. Es ...

Batch & Shell
CMD-Fenster nach Task schließen
gelöst Frage von Hyperlink.93Batch & Shell16 Kommentare

Hallo, ich habe ein Skript was über einen Task bei jeder User Anmeldung läuft. Der Task startet eine CMD ...