• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Linkliste automatisch öffnen und schließen

Status
Für weitere Antworten geschlossen.

futility

Neues Mitglied
Hallo liebe Helfende!

Vorweg eines: Ich bin noch absoluter Neuling was HTML-Programmierung angeht. Deshalb ein dickes Sorry, wenn meine Frage lächerlich oder anders doof rüberkommt.

Und hier ist mein Problem:

Ich habe eine Liste diverser Links (ca. 50 Stück), die ich allesamt mit meinem Browser aufrufen möchte. Dafür soll jedoch nur ein Klick notwendig sein. Dies heißt, ich muss die Linkliste in nem HTML Dokument hinterlegen. Das größte Problem ist jedoch, dass die Links zwar mit einem Klick aufgebaut werden sollen, aber wegen I-Net Überforderung natürlich nicht alle auf einmal, sondern z.B. im Abstand von 1,5 Sekunden.

Außerdem sollen sämtliche Seiten nach deren vollständigem Laden automatisch wieder geschlossen werden (falls es da in HTML nix gibt für fertig geladen ginge ja sicher auch ein close-Timer, z.B. 10 Sek.).


Kann mir da jemand von euch helfen? Ich bin für jede Unterstützung dankbar!!!


Grüße,
Jane
:?
 
Hallo und willkommen futility im HTML.de Forum!

INFO: HTML nennt man keine Programmiersprache, sondern eine Designersprache, oder sonst iwie.

Also dass deine Links nicht alle gleichzeitig erscheinen, kann sein, dass deine Seite überfüllt ist.
Poste doch mal bitte den Quelltext, denn ohne den, kann ich dir nicht gut helfen (und kein anderer :D).

Das mit dem automatischen Schliessen lässt sich indirekt machen.
Es gibt da was, dass in HTML ist, aber Einsteiger kapieren sollten, also nichts kompliziertes, habs haber noch nie ausprobiert.
Ich rate dir sowieso an, einen Link auf der Seite zu platzieren, damit der Besucher selber entscheiden kann, ob es geschlossen werden soll, und wann.

Aber trotzden, hier mein Versuch, habs aber noch nicht getestet:
Code:
<meta http-equiv="refresh" content="10; URL=javascript:window.close()," />
Dieser Code kommt auf der Seite, die nach 10 Sekunden geschlossen werden soll.
Die 10 bedeutet nach 10 Sekunden, und be URL= habe ich ein JavaScript Code gesetzt, der das Fenster schliesst. Aber keine Garantie, dass der Code funktioniert. Der Code kommt in den <head></head> Bereich.

Übrigens: Es war jeder einmal ein Anfänger, also niemals den Kopf hängen lassen, egal wie man dich fertig macht.



MfG, matibaski
 
Hallo matibaski,

vielen Dank für deine Antwort. Bis jetzt sieht mein Skript erstmal so aus:

PHP:
<html> 
<head> 
<script type="text/javascript"> 
<!-- 
function aufruf() { 
links = new Array("http://www.muster.de/", "http://www.beispiel.de/", "http://www.test.de/"); 
f = new Array(links.length); 
for (var j=0; j<links.length; j++) { 
f[j]=window.open(links[j], "Fenster"+j, "width=310,height=400,left=0,top="+(j*10)); 
} 
}
//-->
</script>
</head> 
<body> 
<a href="javascript:aufruf()">alles auf einen Klick</a>
</body> 
</html>


Da fehlen jetzt natürlich noch die beiden Sachen mit
Öffnen+Warten_bis_fertig_geladen und
Schließen_nach_fertig_geladen


Oh Mann fühl ich mich hilflos :]

Gruß,
Jane
 
Das mit dem zeitversetzten Öffnen lässt sich (mehr oder weniger) rekursiv lösen, is wahrscheinlich nicht grade die beste Lösung (JS is nicht grad mein Fachgebiet:wink:) aber es geht:
PHP:
function aufruf(i) {
    links = new Array("http://www.muster.de/", "http://www.beispiel.de/", "http://www.test.de/");
    
    window.open(links[i], "Fenster" + i, "width=310, height=400, screenX=0, screenY=" + i * 100);
        
    if(i < (links.length - 1)) {
        i++;
        setTimeout('aufruf(' + i + ')', 1500);
    }
}
...
<a href="javascript:">Alles auf einen Klick</a>
Durch setTimeout ruft sich die Funktion (aufruf) nach 1500 Millisekunden selbst wieder auf, mit dem um 1 erhöhten Parameter i.

Anmerkung: Sollte nur das erste Fenster angezeigt werden, liegt das daran, dass der FF alle weiteren blockiert (Pop-Up-Blocker eben)

Hoffe das hilft dir weiter.

EDIT:
In dem Link soll natürlich "javascript:aufruf#(#0#);" stehen (ohne die Rautenzeichen, anders kann mans hier nicht schreiben)
 
Whuaaha! Danke BCF, aber kannst du das nochmal in nem zusammenhängenden HTML Script posten? Brauchst ja theoretisch nur an den richtigen Stellen einfügen, oder?

Danke euch vielmals!!!!!!!!!!!



Die
doofe
Jane
 
aber klar doch:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
    <head>
        <title>...</title>        
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <script type="text/javascript">
            //<![CDATA[
                function aufruf(i) {
                    links = new Array("http://www.muster.de/", "http://www.beispiel.de/", "http://www.test.de/");
                    
                    window.open(links[i], "Fenster" + i, "width=310, height=400, screenX=0, screenY=" + i * 100);
                    
                    if(i < (links.length - 1)) {
                        i++;
                        setTimeout('aufruf(' + i + ')', 1500);
                    }
                }
            //]]>
        </script>
    </head>
    <body>
        <a href="javascript:aufruf#(#0#)#">Alles auf einen Klick</a>
    </body>
</html>
Also eigentlich ganz einfach das <script> Zeug zwischen <head></head> und den Link dahin, wo er halt angezeigt werden soll.
(Wieder die Rauten aus dem Link entfernen)
 
Danke BcF, du hilfst mir sehr weiter.

Hab jetzt das Script mal eingesetzt, und die Seiten werden - so wie es sein soll - entsprechend dem Timer zeitverzögert geöffnet. Klasse!

An welcher Stelle müsste ich jetzt noch eingeben, wie lange jedes der geöffneten Fenster zu leben hat?
Geht das mit matibaski Post:

PHP:
<meta http-equiv="refresh" content="10; URL=javascript:window.close()," />
 
Hilfe!

Danke euch allen, dass ihr mir so helft. Ich steh vermutlich nur auf dem Schlauch und die Lösung liegt vor meinen Füßen.

Mein bisheriges Script sieht so aus:

PHP:
    <head>
        <title>...</title>        
        <meta http-equiv="refresh" content="10; URL=javascript:window.close()," />
        <script type="text/javascript">
            //<![CDATA[
                function aufruf(i) {
                    links = new Array("http://www.web.de/", "http://www.gmx.de/", "http://www.yahoo.de/");
                    
                    window.open(links[i], "Fenster" + i, "width=310, height=400, screenX=0, screenY=" + i * 100);
                    
                    if(i < (links.length - 1)) {
                        i++;
                        setTimeout('aufruf(' + i + ')', 2000);
                        
                    }
                }
            //]]>
        </script>
    </head>
    <body>
        <a href="javascript:aufruf(0)">Alles auf einen Klick</a>
    </body>
</html>

Die Seiten der Links werden soweit nach 2 Sekunden (da 2000 ms) aufgerufen. Nur leider schließen sie sich nicht von alleine nach 10 Sekunden.


Kann jemand helfen?


Jane
 
Öffnen nach 2, schließen nach 10 Sekunden, kein Problem :wink:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
    <head>
        <title>...</title>        
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
        <script type="text/javascript">
            //<![CDATA[
                function aufruf(i) {
                    links = new Array("http://www.muster.de/", "http://www.beispiel.de/", "http://www.test.de/");
                    if(i == 0) j = new Array(links.length);
                    
                    j[i] = window.open(links[i], "Fenster" + i, "content=10, width=310, height=400, screenX=0, screenY=" + i * 100);
                    setTimeout('j[' + i + '].close()', 10000);
                    
                    if(i < (links.length - 1)) {
                        i++;
                        setTimeout('aufruf(' + i + ')', 2000);
                    }
                }
            //]]>
        </script>
    </head>
    <body>
        <a href="javascript:aufruf#(#0#);">Alles auf einen Klick</a><br />
    </body>
</html>
wobei das hier die entscheidende Passage ist:
PHP:
if(i == 0) j = new Array(links.length);

j[i] = window.open#(links[i], "Fenster" + i, "content=10, width=310, height=400, screenX=0, screenY=" + i * 100);
setTimeout('j[' + i + '].close()', 10000);
also...
-Wenn die Funktion zum erstem Mal aufgerufen wird (i also noch 0 ist) wird das Array j der Länge links angelegt.
-die Rückgabewerte der Funktion window.open werden in das Array geschrieben.
-ein weiteres setTimeout veranlasst die Fenster (auf die, wie bereits erwähnt, über den, im Array gespeicherten, Rückgabewert der Funktion window.open zugegriffen wird) dazu sich nach 10000 ms zu schließen

Ich hoffe, ich habe mich verständlich ausgedrückt :roll:

EDIT:
Sämtliche Rautenzeichen müssen entfernt werden, wenn du sicher sein willst kopier diesen Quelltext.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben