Hogyan kell tömbökből megnyitni weboldalakat?
Az lenne a kérdésem, hogy hogyan oldjam meg ezt a javascript-et, úgy hogy több oldalt is megnyisson ne csak egyet, de mindegyiket csak 7 másodpercig tartsa nyitva aztán zárja be. Egymás után kéne megnyitni őket, szóval először az elsőt 7 másodpercig, aztán az átvált a másodikra és így tovább. Azért kérek segítséget, mert a tömbökhöz és az időzítéshez nem nagyon értek még...
Eddig jutottam tömb nélkül:
<FORM NAME="urlap">
<INPUT TYPE="button" VALUE="Kattints ide" onClick="ujablak()"><BR>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
function ujablak(){
var ablak = open(" [link]
setTimeout(function(){ablak.close();},7000);
}
</SCRIPT>
De ez ugye csak 1 oldal, és nekem többet kellene...
Itt nézd a válaszom, átláthatóbb: [link]
(ahogy beküldöm, ez itt alul össze fog kuszálódni)
// weboldalak tömbje
var urls = [
' [link]
' [link]
' [link]
' [link]
];
function ujablak(){
if (urls.length) {
setTimeout((function(ablak) {
return function(){
if(ablak) { ablak.close(); }
};
})(open(urls.unshift())), 7000);
} else {
alert('Nincs több url, nézz inkább tv-t!');
}
}
/*
HELPIKE:
urls.length: reprezentálja a tömb elemeinek számár
urls.unshift(): Eltávolít egy elemet a tömb elejéről, és visszatér az eltávolított elemmel.
Önmagát hívó függvény, mely azonnal visszatér egy új függvénnyel:
(function(v){
return function () { alert(v) }; // őrizz meg!
})('Őrizz meg!');
Erre azért van szükség, hogy el tudd menteni az átadott argumentumot későbbre. setTimeout-nál ugye a függvényhívás később (ez esetben 7 másodperc múlva) történik meg. Ilyenkor már nem lehetsz biztos az ablak változó tartalmában, mert lehet, hogy a felhasználó újra rákattintott a gombra. Azonban ha egy új burkoló függvénybe teszed, és annak adod át az argumentumot, így a létrejövő függvény konstruktoraként megőrzi azt, vagyis hivatkozhatsz rá nyugodtan, bármikor.
if(ablak) { ablak.close(); }: Azért kell az IF, mert lehetséges, hogy a felhasználó idő előtt bezárta az ablakot.
*/
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!