Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
PQ Discord Server: #planetquake Spenden? Hier entlang!
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
PQ Discord Server: #planetquake Spenden? Hier entlang!
[js] Neues Fenster onload + reload Problem
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
[js] Neues Fenster onload + reload Problem
folgende situation:
Ich erzeuge ein neues fenster, dem ich einen onload verpasse mittels addEventListener.
in diesem onload prüfe ich, ob die seite korrekt geladen wurde (gelegentlich gibt es dank massig vieler anfragen eine fehlermeldung) und wenn nicht, findet ein reload statt. soweit funktioniert das.
wenn der reload allerdings stattgefunden hat greift das onload nicht mehr, auch wenn ich ihn manuell neu hinzufüge wird er beim reload nicht erneut aufgerufen.
jemand ne idee wie man das fixen kann ?
der gesammte js code ist auf der startseite, also nicht im neuen fenster.
Ich erzeuge ein neues fenster, dem ich einen onload verpasse mittels addEventListener.
in diesem onload prüfe ich, ob die seite korrekt geladen wurde (gelegentlich gibt es dank massig vieler anfragen eine fehlermeldung) und wenn nicht, findet ein reload statt. soweit funktioniert das.
wenn der reload allerdings stattgefunden hat greift das onload nicht mehr, auch wenn ich ihn manuell neu hinzufüge wird er beim reload nicht erneut aufgerufen.
jemand ne idee wie man das fixen kann ?
der gesammte js code ist auf der startseite, also nicht im neuen fenster.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
Code: Alles auswählen
var w = window.open("http://blaaa/");
w.addEventListener('load', function() {
//..
if(!isPageValid(w))
w.location.reload();
}, true);
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
-
- Rampage
- Beiträge: 14303
- Registriert: Jun 2001
- Steam: TomHonks
ich kenn mich mit js nicht aus, aber gibt es vielleicht noch andere events die passender wären? also zB auf load und auf refresh "hören"
Danke an Drasora für ihr Wichtelgeschenk!
MAR hat geschrieben:Führt der durch den Terrence-Hill?
-
- Daemia
- Beiträge: 319
- Registriert: Feb 2010
Das Problem ist also, die Seite wird neu geladen, aber auf die neu geladene Seite könnte wieder nicht korrekt geladen worden sein und in dem Fall funktioniert der Event-Listener nicht mehr?
W ist in dem neuen Fesnter nicht mehr bekannt. Durch this oder window ersetzt, funktioniert es (Lustigerweise stört es ihn beim w.close(); in keinster Weise ):
Seite1.html:
<html>
<head>
<title>Seite1</title>
<script type="text/javascript">
function main()
{
var w = window.open("seite2.html");
w.addEventListener('load', function()
{
window.setTimeout(function()
{
w.close();
this.location.reload();
}, 500);
}, true);
}
</script>
</head>
<body onload="main()">
</body>
</html>
Seite2.html:
<html>
<head>
<title>Seite2</title>
<script type="text/javascript">
function main()
{
var bgcolorlist = new Array("red", "blue", "green", "yellow");
document.body.style.background = bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)];
}
</script>
</head>
<body onload="main()">
</body>
</html>
W ist in dem neuen Fesnter nicht mehr bekannt. Durch this oder window ersetzt, funktioniert es (Lustigerweise stört es ihn beim w.close(); in keinster Weise ):
Seite1.html:
<html>
<head>
<title>Seite1</title>
<script type="text/javascript">
function main()
{
var w = window.open("seite2.html");
w.addEventListener('load', function()
{
window.setTimeout(function()
{
w.close();
this.location.reload();
}, 500);
}, true);
}
</script>
</head>
<body onload="main()">
</body>
</html>
Seite2.html:
<html>
<head>
<title>Seite2</title>
<script type="text/javascript">
function main()
{
var bgcolorlist = new Array("red", "blue", "green", "yellow");
document.body.style.background = bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)];
}
</script>
</head>
<body onload="main()">
</body>
</html>
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
aber window ist in dem fall doch das aufrufende fenster oder nicht ?
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
gerade ausprobiert, funktioniert nicht.
this ist hier nicht das geöffnete fenster, sondern das aufrufende fenster.
hau das in die firebug konsole rein(falls du sie hast):
eventuell liegt es daran dass ich zum aufrufenden fenster zurück wechsel? das lässt sich jedoch nicht vermeiden, bzw. geschieht regelmäßig.
this ist hier nicht das geöffnete fenster, sondern das aufrufende fenster.
hau das in die firebug konsole rein(falls du sie hast):
Code: Alles auswählen
var w = window.open("http://quake.ingame.de/forum/");
w.addEventListener('load', function() {
window.setTimeout(function() {
alert('reloaded');
this.location.reload();
}, 500);
}, true);
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
-
- Daemia
- Beiträge: 319
- Registriert: Feb 2010
Huch, hast recht. Das machte keinen Sinn. Hatte gar nicht geschaut, was mit Seite1 passiert :F
So geht es: Seite1
So geht es: Seite1
Code: Alles auswählen
<html>
<head>
<title>Seite1</title>
<script type="text/javascript">
alert("Ich werde nur einmal aufgerufen!");
function main()
{
var w = window.open("seite2.html");
w.addEventListener('load', function()
{
window.setTimeout(function()
{
w.close();
main();
}, 1000);
}, true);
}
</script>
</head>
<body onload="main()">
</body>
</html>
<html>
<head>
<title>Seite2</title>
<script type="text/javascript">
function bla()
{
var bgcolorlist = new Array("red", "blue", "green", "yellow");
document.body.style.background = bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)];
}
</script>
</head>
<body onload="bla()">
</body>
</html>
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
ja, funktionieren tut es, ist aber nicht das wonach ich gefragt habe..
du erzeugst ein neues fenster. beim neu erzeugen wird automatisch zum neuen fenster gewechselt.
bei einer problemschleife hat man also wie bei deinem beispiel schwierigkeiten zum originalfenster zurück zu kommen ohne dieses zu schliessen.
bei meinem anwendungszweck sollte seite2 im hintergrund neu geladen werden bis es endlich geht und dann auf seite1 eine nachricht erscheinen.
meine vorerst lösung dazu sieht so aus, dass ich auf seite2 im onload eine methode des parent fensters aufrufe.
auch nicht ganz schön, aber funktioniert mit reload anstelle von neuem fenster.
bevor ichs vergesse: danke fürs mitdenken, mir scheint jedoch für das eigentliche problem gibt es keine lösung.
du erzeugst ein neues fenster. beim neu erzeugen wird automatisch zum neuen fenster gewechselt.
bei einer problemschleife hat man also wie bei deinem beispiel schwierigkeiten zum originalfenster zurück zu kommen ohne dieses zu schliessen.
bei meinem anwendungszweck sollte seite2 im hintergrund neu geladen werden bis es endlich geht und dann auf seite1 eine nachricht erscheinen.
meine vorerst lösung dazu sieht so aus, dass ich auf seite2 im onload eine methode des parent fensters aufrufe.
auch nicht ganz schön, aber funktioniert mit reload anstelle von neuem fenster.
bevor ichs vergesse: danke fürs mitdenken, mir scheint jedoch für das eigentliche problem gibt es keine lösung.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
-
- Humilation
- Beiträge: 10589
- Registriert: Dez 2006
- Kontaktdaten:
-
- Stripe
- Beiträge: 2498
- Registriert: Mär 2002
1. is kein echtes popup fenster sondern ein normales fenster, welches heutzutage eh im neuen tab geöffnet wird.
2. geht um nen greasemonkey script, welches nur ich nutze, also ist die nutzbarkeit lediglich aus meiner perspektive interessant. und für mich isses so am brauchbarsten.
2. geht um nen greasemonkey script, welches nur ich nutze, also ist die nutzbarkeit lediglich aus meiner perspektive interessant. und für mich isses so am brauchbarsten.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries