• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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="#" ?
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
797
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
 

michl1989

Fuji
Registriert
05.04.10
Beiträge
37
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 ?
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
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
});
 

seaker

Empire
Registriert
19.04.10
Beiträge
88
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.
 

karolherbst

Danziger Kant
Registriert
11.05.07
Beiträge
3.878
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
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
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()">.