Toon posts:

[JS]Focus behouden op popupObject

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik het popupObject als loading message modat deze over frames heen valt. Ik heb nu alleen het probleem dat ik bij mousemove events en clicks op frames mijn popupObject kwijt raak. Ik heb het idee dat dit ligt aan focus en blur bugs :? Iemand een oplossing mo de focus te behouden?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
function load(){
    var oPopup = window.createPopup();
    var oPopupBody = oPopup.document.body;
    
    var pHeight = 100;
    var pWidth = 100;
    var pTop = (screen.availHeight-pHeight)/2;
    var pLeft = (screen.availWidth-pWidth)/2;
          
    oPopupBody.innerHTML = "Dit kan nog wel even duren... ";
    oPopup.show(pLeft, pTop, pWidth, pHeight, document.body);
}
</script>

Verwijderd

in je popup iets van window.focus() gebruiken?

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 17:51
Bedoel je dat het venstertje altijd bovenaan moet staan, dus ook als de gebruiker op de ladende pagina klikt? Dan zal je denk ik iets als een settimeout moeten gebruiken die de melding steeds weer naar voren tovert. Of je gebruikt een alert o.i.d., maar dat is natuurlijk minder flexibel en mindere lay-out.

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:15

André

Analytics dude

Of in de <body> tag van de popup:

<body onBlur="window.focus()">

Verwijderd

Topicstarter
Het popupObject heeft geen blur en focus events :) Officieel mag je dus geen focus behouden. Het gedraagt zich als een tooltip zeg maar.

Maar misschien dat er toch een sneaky mogelijkheid was :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:15

André

Analytics dude

MSDN:
Note Because the popup object never takes focus, focus related events such as onfocus and onblur are not applicable to the popup object.
Dus je moet Dialog Boxes of showModalDialog of showModelessDialog gebruiken als je wil focussen.

MSDN:
Dialog boxes always take focus when they are first opened

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:20

Pelle

🚴‍♂️

Kun je niet in alle afzonderlijke frames weer bij een document.onmousedown die functie uit laten voeren (zolang nog niet alles geladen is dus) ?

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:20

Pelle

🚴‍♂️

Oftewel, maak zo'n soort constructie:



Java:
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
stillLoading = true; 
    
function load (){ 
    if (stillLoading) {
        var oPopup = window.createPopup(); 
        var oPopupBody = oPopup.document.body; 
     
        var pHeight = 100; 
        var pWidth = 100; 
        var pTop = (screen.availHeight-pHeight)/2; 
        var pLeft = (screen.availWidth-pWidth)/2; 
           
        oPopupBody.innerHTML = "Dit kan nog wel even duren... "; 
        oPopup.show(pLeft, pTop, pWidth, pHeight, document.body); 
    }
} 

function ready() {
    stillLoading = false;
    // eventueel oPopup automagisch hiden
}

window.onload        = load;
document.onmousedown = load;

setTimeout('ready()', 5000);

Verwijderd

Topicstarter
Pelle schreef op 22 January 2003 @ 15:11:
Kun je niet in alle afzonderlijke frames weer bij een document.onmousedown die functie uit laten voeren (zolang nog niet alles geladen is dus) ?
Dan krijg je een flikker effect, door het focussen en blurren van het object. Een modaldialog zoals eerder voorgesteld is natuurlijk geen optie. Ik wil juist van de titelbalk etc. af.

De bedoeling is om in een pagina, in de layout van MS Outlook een laag te centreren welke actief wordt tijdens het laden van opties, laden van pagina's en tonen van melding zoals printen, synchronizeren, foutmeldingen, informatie, en did you know you could also do meldingen...

In het verleden heb ik dit al eens gedaan door middel van een <iframe> in een div. Helaas komt zelfs dan een object als een select box door de iframe heenzeilen als er een select box achter zit.

Uitgangspunt is het verkrijgen van een gecentreerde laag, over objecten als flash animaties, select boxes en alle irritante bugs heen, welke net zolang zichtbaar blijft tot het moment dat ik via scripting aangeef dat die op mag tiefen.

[ Voor 6% gewijzigd door Verwijderd op 22-01-2003 20:09 ]


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 23:20

Pelle

🚴‍♂️

Heb het zelf ff uitgeprobeerd, maar dat flikker effect is nou niet echt heel hinderlijk ofzo. Denk dat je er toch op aangewezen bent namelijk...

Verwijderd

Topicstarter
Pelle schreef op 22 januari 2003 @ 20:16:
Heb het zelf ff uitgeprobeerd, maar dat flikker effect is nou niet echt heel hinderlijk ofzo. Denk dat je er toch op aangewezen bent namelijk...
Aan de ene kant valt het wel te verwaarlozen, als ik er zo een hoop gekut mee voorkom. Enige wat nog de popup laat verdwijnen is een onblur van het window object. Maar hier moet ik de bij een onfocus op het window object ook load aanroepen.
Pagina: 1