tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
499
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von deb_ugger
    deb_ugger deb_ugger ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Graz
    Beiträge
    100
    Hallo!

    Ich versuche eine Ebene / ein Popup zu erzeugen, das über den eigentlichen Browserrand hinausgeht. Ich habe auch bereits eine Lösung gefunden, die dieses Verhalten unterstützt.

    popup.show(iX, iY, iWidth, iHeight [, oElement])

    Hier auch ein Beispielcode:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     
    <html>
    <head>
        <title>Testseite</title>
        
    <script>
    /*****************************************************
    * Ebenen Popup
    *****************************************************/
    var oPopup = window.createPopup();
    function definePopup(left,top,width,height) {
        if (event.srcElement.id=="menu_test1") {
            oPopup.document.body.innerHTML = otest1.innerHTML;
            var popupBody = oPopup.document.body;
            oPopup.show(left,top,width,height,document.body);
        }
        else if (event.srcElement.id=="menu_test2"){
            oPopup.document.body.innerHTML = otest2.innerHTML;
            var popupBody = oPopup.document.body;
            oPopup.show(left,top,width,height,document.body);
        }
    }
    </script>
    <style>
    #menu_test1 {
        background-image: url(../images/menu_contacts_1.gif);
        background-repeat: no-repeat;
        position: absolute;
        left: 0px;
        top: 120px;
        width: 250px;
        height: 40px;
        cursor: hand;
    }
     
    #menu_test2 {
        background-image: url(../images/menu_files_1.gif);
        background-repeat: no-repeat;
        position: absolute;
        left: 0px;
        top: 260px;
        width: 250px;
        height: 40px;
        cursor: hand;
    }
    </style>
    </head>
     
    <body>
    <div id="menu_test1" onClick="definePopup('-282','207','284','500');">open menu1</div>
    <div id="menu_test2" onClick="definePopup('-282','407','284','300');">open menu2</div>
     
    <div style="display:none;">
        <div id="otest1">
            <div style="border: solid 3px #000042; border-right: 0px; background-repeat: no-repeat; width:284; height:500">Seite 1</div>
        </div>
        <div id="otest2">
            <div style="border: solid 3px #000042; border-right: 0px; background-repeat: no-repeat; width:284; height:300">Seite 2</div>
        </div>
    </div>
    </body>
    </html>

    Das Problem ist jedoch: Das Fenster verschwindet, sobald ich meinen Fokus ändere und beispielsweise in das Hauptfenster klicke. Weiß wer von euch, wie man dieses Problem umgehen könnte oder kennt wer eine bessere Lösung?

    Danke für die Hilfe!
    mfg,
    debugger
    Geändert von deb_ugger (23.12.06 um 09:54 Uhr)
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Deklariere eine Variable mit dem Wert false
    Speichere beim Aufruf von "definePopup()" das Objekt "event.srcElement" in dieser Variablen. Dann überwache den onclick-Event des documents.
    Rufe, wenn dieser Event feuert, eine weitere Funktion auf.
    In dieser Funktion prüfe, ob die deklarierte Variable "false" ist... wenn nicht, führe einen click() darauf aus....was wiederum "definePopup()" auslöst, womit das Popup offen bleibt(oder besser gesagt sofort wieder geöffnet wird).

    Wenn du das Popup schliessen willst, verwende darauf die Methode hide() ... vorher musst du die deklarierte Variable aber wieder auf "false" setzen.

    Übrigens: Dass diese Sache nur im IE ab V5.5 funktioniert, ist dir aber bekannt ?!
     

Ähnliche Themen

  1. Lightbox - Fokus auf Popup legen
    Von shredder01 im Forum Javascript & Ajax
    Antworten: 12
    Letzter Beitrag: 16.03.11, 18:15
  2. Bloginhalt verschwindet bei Show/Hide Funktion
    Von RoyalArsenal im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 15.07.09, 14:01
  3. Neues Fenster öffnen sobald -> Klick
    Von proloser im Forum Javascript & Ajax
    Antworten: 13
    Letzter Beitrag: 18.03.09, 07:26
  4. Antworten: 4
    Letzter Beitrag: 29.10.07, 02:44
  5. Fenster Fokus und Koordinaten
    Von pfann86 im Forum Java
    Antworten: 6
    Letzter Beitrag: 14.05.07, 10:17