Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
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
28.01.09
13: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?
Hilfreich?
0
Kommentare
sierkb
28.01.09
14: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.
Hilfreich?
0
Arclite
28.01.09
15:34
window.location = "index3.html";
Hilfreich?
0
vetterjack
28.01.09
16: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>
???
Hilfreich?
0
vetterjack
29.01.09
15: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?
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Softwareupdate: Apple veröffentlicht iOS 18.2.1
Tim Cooks Jahresgehalt – und die Vergütung der ...
Kurz: Trump unterstützt Musk als TikTok-Besitze...
Mac OS X: 25 Jahre Aqua, 25 Jahre Dock
IMAP und Abstürze: Apple bekommt die Probleme m...
Parallels führt x86-Windows auf M-Macs aus – Te...
Test: eversolo DMP-A10
Verwunderung über Upgrade-Preise: Zwei Mac Mini...