script VOR dem laden der seite ausführen?

Bomber

Erfahrenes Mitglied
ok ich habe folgendes script, dass mir einen layer horizontal und vertikal zentriert:

Code:
function init()
	{
    var hmid = screen.availHeight/2-400;
	var vmid = screen.availWidth/2-250;
	
	document.all.main.style.top  = hmid;
	document.all.main.style.left = vmid;
	}

So, die wird per

Code:
 <body onload="init()">

gestartet. allerdings sieht es etwas doof aus weil erst der layer inhalt, also die eigentliche ganze seite geladen wird und dann erst das script ausgeführt dh. der layer zentriert wird.

kann man das irgendwie anders machen, so das zuerst der layer zentriert und dann die ganze chose geladen wird?

danke im vorraus.
b.
 
So ganz spontan würde ich sagen das du den Layer unsichtbar schaltest und nach dem zentrieren wieder sichtbar.

So könnte deine Problem behoben werden.
 
einfach cheaten ;)

onload wird ausgeführt, wenn das laden der seite abgeschlossen ist..

probiers so zu umgehen

<body>
<script>init();</script>
...
lalalla
...
</body>

wenn das nicht geht kannsts ja auch im <head>-bereich probieren....

hope that helps

gruß
q
 
einfach
Code:
<html>
<head>
<script language="JavaScript">
function init() {
  ...
}
init();
</script>
</head>
<body>
bla
</body>
</html>
greetZZzz
 
diese idee funktioniert bedauerlicher weise auch nicht.
ich suche auch schon seit längerem eine möglichkeit mein layerscript vor dem laden der page einzublenden zu lassen.

über jede idee würd ich mich freuen

mfg
vadi
 
@Vadi:
Zeige doch mal dein Layerskript, möglicherweise benötigst du ja etwas ganz anderes als der Themenersteller vor 6 Jahren :suspekt:

Eines sollte jedoch klar sein, da ein Skript Bestandteil des Dokumentes ist, muss das Dokument zumindest so weit geladen werden, bis das Skript eingelesen ist, alles andere wäre Hexerei :)
 
Die Möglichkeit die es gäbe , wäre das JavaScript auszuführen sobald der DOM geladen wurde und nicht erst wenn das Fenster geladen wurde.

Eine CSS Lösung wäre hier aber sauberer.

Hier mal meine Funktion die ich nutze wenn ich JavaScript ausführen will wenn der DOM bereits fertig ist und die Bilder mich erstmal nicht interessieren.

Code:
var DOM = {
    domCheck:false,
    domReady:false,
    inRow:new Array(),
    loaded:function (func) {
        DOM.inRow.push(func);
        if(!DOM.domCheck) {
            (function(){
                DOM.domCheck = true;
                    
                if(document.all && /msie/i.test(navigator.userAgent)) {
                    document.write("<script type='text/javascript' id='dummyScript' defer src='javascript:void(0);'><\/script>");
                    var ds = document.getElementById("dummyScript");
                        
                    ds.onreadystatechange = function () {
                        if(this.readyState == "complete") {
                            DOM.domReady = true;
                            domLoaded();
                        }
                    };
                } else {
                    document.addEventListener("DOMContentLoaded",function () { DOM.domReady = true;domLoaded(); },false);
                }
                return null;
            })();
        } else {
            if(DOM.domReady) {
                func();
            }
        }
            
        function domLoaded(){
            for(func in DOM.inRow) DOM.inRow[func]();
        };
    }
};

Aufruf wäre dann so

Code:
<html>
   <head>
      <script type="text/javascript">
          function initScripte () {
             // scripte werden nun gestartet
          }

          DOM.loaded(initScripte);
      </script>
   </head>
   <body>
    ....
   </body>
</html>

Klappte bisher immer ganz gut. Auch im Safari auch wenn ich dafür mal irgendwelche Workarounds gefunden hatte , aber die scheinen schon veraltet gewesen zu sein.
 

Neue Beiträge

Zurück