Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>JavaScript "open.window" vermeiden?

JavaScript "open.window" vermeiden?

vetterjack
vetterjack28.01.0913:46
Hey
Ich bin gerade dran für mich und meine Klasse einen Lateinvokabeltrainer zu programmieren. Dies mache ich mit ganz einfachem JavaScript:
index1.html:
<html>
<head><title>Lektion 1</title></head>
<script language="JavaScript">
function dialog()

{
var Eingabe;
while (Eingabe!="wer?,was?")
{
Eingabe=prompt ("quis?,quid?");
if (Eingabe=="wer?,was?")
{
break;
}
else
{
alert ("Falsch!");
}
}
open ("index2.html");
}
</script>

<body onload="dialog()">

</body>




</body>

</html>
index2.html:
<html>
<head><title>Lektion 1</title></head>
<script language="JavaScript">
function dialog()

{
var Eingabe;
while (Eingabe!="schau!,schaut!")
{
Eingabe=prompt ("ecce!");
if (Eingabe=="schau!,schaut!")
{
break;
}
else
{
alert ("Falsch!");
}
}
]open ("index3.html");
}
</script>

<body onload="dialog()">

</body>




</body>

</html>

Nun ist aber das Problem, dass er durch dieses
open ("index3.html");
immer einen neuen Tab öffnen, und das ziemlich nervig ist.
Wie muss ich den Code verändern, dass er immer die neue Frage im gleichen Tab öffnet?
0

Kommentare

sierkb28.01.0914:26
Erstens: dass Dein Browser Deine aufgemachten Fenster immer in einem neuen Tab anzeigt, das hast Du wahrscheinlich in Deinem Browser so eingestellt. Bei Firefox z.B. mit Menuleiste Firefox Einstellungen Tabs Neue Seiten sollen geöffnet werden: []in einem neuen Fenster [✓]einem neuen Tab. Deshalb werden diese von JavaScript geöffneten neuen Fenster als Tab geöffnet.

Zweitens: wenn Du möchtest, dass Deine Inhalte immer in dem selben Fenster geöffnet werden, dann solltest Du das per JavaScript auch mitteilen. Indem Du Deinem Fenster/Deinen Fenstern Namen gibst und Deinen Fensteröffnungs-Anweisungen mit auf den Weg gibst, dass er die betreffenden Inhalte nur in einem bestimmten Fenster eines bestimmten Namens anzeigen soll. Dazu gibt es für das window-Objekt in JavaScript die window-Eigenschaft name, siehe . Mehr dazu: .

Drittens: Schreibe statt
<script language="JavaScript">
lieber
<script type="text/javascript">
. Richtiger und gemäß RFC 4329 wäre sogar
<script type="application/javascript">
. Doch diesen MIMEtype versteht der IE derzeit leider nicht. Das language-Attribut ist gemäß HTML 4.01 missbilligt (engl. deprecated), und von dessen Gebrauch wird offiziell abgeraten zugunsten der MIMEtype-Referenzierung über das type-Attribut.
0
Arclite
Arclite28.01.0915:34
window.location = "index3.html";
0
vetterjack
vetterjack28.01.0916:43
Erstmal danke für die Antworten. Das mit dem window.location = "index3.html"; funktioniert leider nicht.
@sierkb
Das mit dem namenvergeben blicke ich noch nicht so ganz. Könntest du mir bitte ein Beispiel machen, den in dem Beispiel von denen kommt so viel "Name" vor

Müsste es dann ungefähr so aussehen:
<html>
<head><title>Lektion 1</title></head>
<script language="text/JavaScript">
Fenster = window.open("index2.html", "KleinesFenster", "width=200,height=200");
function 1 () {
  alert("1" + Fenster.name);
  neu = prompt("Vokabel1", "1");
  Fenster.name = neu;
  alert("Der Name des Fensters lautet jetzt: " + Fenster.name);
}

{
var Eingabe;
while (Eingabe!="wer?,was?")
{
Eingabe=prompt ("quis?,quid?");
if (Eingabe=="wer?,was?")
{
break;
}
else
{
alert ("Falsch!");
}
}
window.location.open ("index2.html");
}
</script>

<body onload="funktion 1 ()">

</body>




</body>

</html>
???
0
vetterjack
vetterjack29.01.0915:21
so, dieses Problem habe ich gelöst, doch nu steht schon das nächste vor der Tür:

Da so eine Vokabel mehrere Bedeutungen hat, muss ich diese ja so definieren:
<script language="JavaScript">
function dialog()

{
var Eingabe;
while (Eingabe!="f,die Freundin," || "f,Freundin" || "f,Die Freundin" ||  "f Die Freundin" || "f die Freundin" || "f Freundin")
{
Eingabe=prompt ("amica");
if (Eingabe=="f,die Freundin," || "f,Freundin" || "f,Die Freundin" ||  "f Die Freundin" || "f die Freundin" || "f Freundin")
{
break;
}
else
{
alert ("Falsch!");
}
}
window.location.href =  ("index9.html");
}
</script>

Nun besteht aber das problem, dass man irgendwas anderes eintippen kann, was ich nicht definiert habe, und er es trotzdem als richtig empfindet, wie kann ich das ändern, dass wirklich nur die definierten begriefe funktionieren?

0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.