Forum Doku Wiki Blog

Forumsarchiv 2009, Mai
Element angeblich nicht gefunden ...

archivierte Beiträge lesen

  1. (JAVASCRIPT) Element angeblich nicht gefunden ... von minicrispie, 12. 05. 2009, 09:51

Element angeblich nicht gefunden ...

Der folgende Beitrag wurde am 12. 05. 2009, 09:51 Uhr von minicrispie veröffentlicht.

Hallo,

und wieder einmal gibts Probleme ;)
um mal wieder ein bisschen mit JavaScript herumzuspielen hab ich folgendes Problem versucht zu lösen:
ich will eine Seite haben, die mir alle anderen Seiten meine Wahl öffnet und diese Kontrollieren kann. Das hab ich auch schon mit normalen Funktionen geschafft. Dann hab ich ein Closure drumgebaut und seitdem Findet er ein HTML-Element angeblich nicht mehr ... irgendwie versteh ich das nicht ganz, da es eindeutung im Quelltext vorhanden ist.

Hier einmal der Quelltext. Der Ort des Fehlers ist markiert.

<html>
        <head>
                <title></title>
                
                <script type="text/javascript">

                        var fenster = {
                                //Die Adressen aller Fenster
                                adressen: new Array(
                                        /*"www.dampfer.net",
                                        "www.schueler.cc",
                                        "forum.de.selfhtml.org",
                                        "www.gondal.de/signups/login",
                                        "www.wurzelimperium.de",
                                        "www.die-staemme.de",
                                        "www.pc-labor.hn.vc",
                                        "www.arcor.de",
                                        "www.gmx.de"*/

                                        "www.google.de",
                                        "www.google.de"
                                ),
                                controlls: null,
                                offene_fenster: 0,
                        
                                open: function()
                                {
                                        content  = "<table>";
                                        content += "<tr><td colspan=\"3\">Fensterkontrolle</td></tr>";
                                        
                                        fenster.controlls = new Array( fenster.adressen.length );
                                
                                        //Alle Fenster mit den Adressen im Array öffnen
                                        var i = 0;
                                        for( i=0; i<fenster.adressen.length; i++ )
                                        {
                                                adresse     = "http://" + fenster.adressen[i] + "/";
                                                bezeichnung =                     "Fenster_nr_" + i;
                                                fenster.controlls[i] = window.open( adresse, bezeichnung, "" );
                                                
                                                //Den Controller für das Fenster schreiben
                                                content += "<tr id=\"elem_" + i + "\">";
                                                content += "<td>" + ( i + 1 ) + ".</td>";
                                                content += "<td>" + adresse + "</td>";
                                                content += "<td><a href=\"#\" onclick=\"fenster.close(" + i + ")\">schliessen</a></td>";
                                                content += "</tr>";
                                                
                                                fenster.offeneFenster++;
                                        }
                                        
                                        content += "</table>";
                                        document.getElementById( "controller" ).innerHTML = content; // !HIER TRITT DER FEHLER AUF!
                                        
                                        //Die Fenster im Abstand von 5 Sekunden prüfen
                                        setTimeout( "fenster.check()", 5000 );
                                },
                                
                                check: function()
                                {
                                        var i = 0;
                                        for( i=0; i<fenster.controlls.length; i++ )
                                        {
                                                if( fenster.controlls[i].closed == true )
                                                {
                                                        fenster.controlls[i].close( i );
                                                }
                                        }
                                        
                                        setTimeout( "fenster.check()", 5000 );
                                },
                                
                                close: function( id )
                                {
                                        if( fenster.controlls[id].closed == false )
                                        {
                                                fenster.controlls[id].close();
                                                document.getElementById( "elem_" + id ).style.display = "none";
                                                
                                                fenster.offeneFenster--;
                                                
                                                if( fenster.offeneFenster == 0 )
                                                {
                                                        document.body.innerHTML  = "Keine Fenster mehr vorhanden<br><br>";
                                                        document.body.innerHTML += "<input type=\"button\" value=\"Fenster öffnen\" onclick=\"fenster.open()\">";
                                                }
                                        }
                                        else
                                        {
                                                alert( "Das Fenster ist bereits geschlossen" );
                                        }
                                }
                        };
                        
                        fenster.open();

</script>
        </head>
        
        <body>
                <div id="controller"></div>
        </body>
</html>



Die Fehlerkonsole im Firefox 3.0.10 gibt mir folgendes aus:
Fehler: document.getElementById("controller") is null
Quelldatei: file:///C:/*****/open.html
Zeile: 50

Könnt ihr helfen?


MfG. Christoph Ludwig
--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~

Go to this

Element angeblich nicht gefunden ...

Der folgende Beitrag wurde am 12. 05. 2009, 09:53 Uhr von Cheatah veröffentlicht.

Hi,

> Die Fehlerkonsole im Firefox 3.0.10 gibt mir folgendes aus:
> Fehler: document.getElementById("controller") is null

völlig zu Recht. Ein solches Element gibt es erst viel später.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes

Element angeblich nicht gefunden ...

Der folgende Beitrag wurde am 12. 05. 2009, 09:55 Uhr von minicrispie veröffentlicht.

Hallo,

> völlig zu Recht. Ein solches Element gibt es erst viel später.

ach verdammt ... immer diese kleinen Fehler.
Danke!


MfG. Christoph Ludwig
--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~

Go to this

Element angeblich nicht gefunden ...

Der folgende Beitrag wurde am 12. 05. 2009, 12:01 Uhr von molily veröffentlicht.

Hallo,

Ein Script hat Zugriff nur auf die Elemente vor dem zugehörigen script-Element
Auch wenn du hier nicht mit Event-Handling arbeitest, sind die verschiedenen Phasen relevant.

Mathias
--
JavaScript-Erweiterung für das SELFHTML-Forum

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4