• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Fenster geht nicht auf mit Java

michl1989

Fuji
Registriert
05.04.10
Beiträge
37
Also im Headbereich steht folgendes :
Code:
<script type="text/javascript">
document.getElementById('win2').onclick = function() {
    var winURL = 'Test.html';
    var winName = 'win1';
    var winSize = 'width=660,height=620,scrollbars=yes';
    var ref = window.open(winURL, winName, winSize); 
}
</script>
und im Body steht dann dass
Code:
<a id="win2" href="#">URL</a>
.

Nun meine Frage wieso geht dass nicht auf ? und wie kann macheen dass varwinName dynamische ausgelensen von href="#" ?
 
Also 1: Das hat nicht mit Java, sondern "nur" mit JavaScript zu tun.

Du versuchst auf ein Element zuzugreifen das noch nicht existiert. Wenn Du die Scriptanweisungen hinter den URL-Aufruf packst sollte es Funktionieren.

Code:
<a id="win2" href="#">URL</a>
<script type="text/javascript">
document.getElementById('win2').onclick = function() {
    var winURL = 'Test.html';
    var winName = 'win1';
    var winSize = 'width=660,height=620,scrollbars=yes';
    var ref = window.open(winURL, winName, winSize); 
}
</script>

Torben
 
Also 1: Das hat nicht mit Java, sondern "nur" mit JavaScript zu tun.

Du versuchst auf ein Element zuzugreifen das noch nicht existiert. Wenn Du die Scriptanweisungen hinter den URL-Aufruf packst sollte es Funktionieren.

Code:
<a id="win2" href="#">URL</a>
<script type="text/javascript">
document.getElementById('win2').onclick = function() {
    var winURL = 'Test.html';
    var winName = 'win1';
    var winSize = 'width=660,height=620,scrollbars=yes';
    var ref = window.open(winURL, winName, winSize); 
}
</script>

Torben
Okay , und wie kann ich das machen - dass in HEAD funktioniert ?
 
Dann muss in Head eine Funktion deklariert werden, die nicht sofort beim Rendern, sondern erst nach fertigem Laden der Seite überhaupt aufgerufen wird.

Ich würde für solche Sachen jQuery empfehlen, das bietet insbesondere ein Ereignis, das wirklich erst nach komplettem Aufbau des DOM ausgelöst wird (bei dem normalen JavaScript-onload-Ereignis bin ich nicht so sicher, wann genau es jeder einzelne Browser auslöst):

$(document).ready(function() {
// do stuff when DOM is ready
});
 
Ansonsten kannst du auch einfach eine Funktion erstellen im Header und dann im link unten ein onclick-event auslösen und dabei die im Header definierte Funktion aufrufen.
 
script tags sind im head Bereich wirkungslos. Die müssen im Body stehen. du kannst aber auch über <body onload="function()"> eine Funktion nach dem Laden direkt ausführen lassen
 
script tags sind im head Bereich wirkungslos. Die müssen im Body stehen.

Das gilt aber nur für Scriptcode, der beim Rendern der Seite direkt ausgeführt werden soll.
Script-Tags zur lokalen Definition von JavaScript-Funktionen oder zum Einbinden externen JavaScript-Codes gehören dagegen sehr wohl in den Header und sind dort auch nicht wirkungslos.
du kannst aber auch über <body onload="function()">
eine Funktion nach dem Laden direkt ausführen lassen
Das onload-Ereignis geht natürlich auch, hat aber Nachteile, vgl. z.B. http://phpperformance.de/javascript-event-onload-und-die-bessere-alternative/.
Typische Syntax (wenn eine Funktion xyz() bereits in einem Script-Tag im HEAD definiert ist) wäre <body onload="xyz()">.