# Java Script Problem



## hackbird (20. Mrz 2010)

Hi Leute,

ich würde gerne auf meiner Seite folgendes script unterbringen.
Nur klappt es nicht.
Was soll das Script:
Auf meine Seite befinden sich eine menge Bilder aus meinem FUSSI Verein.Bei jedem klicken 
auf das Thumb öffnet sich das Bild in voller größe.
Nun möchte ich aber wenn man dort draufklickt dass sich ein neues Fenster mit öffnet mit vorgegebener URL. Bis jetzt hab ich diesen Befehl immer vor jedes Bild gesetzt:

*target="_blank"onclick="window.open(URL);"*

Klappt auch wunderbar, nur ist es sehr mühsam das bei jedem der Bilder zu machen.

Gibt es da eine Möglichkeit im HEADER einen Code zu setzen der dies automatisiert?


----------



## Noctarius (20. Mrz 2010)

Verschoben:
http://www.java-forum.org/fuer-verirrte-fragen-javascript/15912-falschen-forum.html

PS: Sowas?

```
var elements = document.getElementsByTagname("img");
for (var i = 0; i < elements.length; i++) {
  var el = elements[i];
  el.onclick = function(target) {
    //dein handler code
  };
}
```


----------



## hackbird (20. Mrz 2010)

Sorry Noctarius
Anfänger Fehler 
Yep genau Noctarius, nur wie gesagt mit neuem Fenster öffnen und eingabe einer besimmten URL.

Wie gesagt bin neu 

Der Code sieht gut aus, kann ich denn in meinen BLOG HEADER (Blogger) so einfügen?


----------



## Noctarius (20. Mrz 2010)

hackbird hat gesagt.:


> Sorry Noctarius
> Anfänger Fehler



Hab mal ein wenig dazu gekritzelt, erhebt keinen Anspruch auf Funktionalität aber so in der Richtung müsste es gehen


----------



## hackbird (20. Mrz 2010)

Yep genau Noctarius, nur wie gesagt mit neuem Fenster öffnen und eingabe einer besimmten URL.

Wie gesagt bin neu

Der Code sieht gut aus, kann ich denn in meinen BLOG HEADER (Blogger) so einfügen? 
BZW: wo die URL eingeben bei deinem Script und kann ich (img) nich erweitern z.B. img;jpg;jpeg ???


----------



## Noctarius (20. Mrz 2010)

Das führst du einfach im Head aus, das wird dann für jedes Img-Tag aufgerufen und setzt den entsprechenden Handler. Musst halt nur in der Function deinen window.open Code einfügen.


----------



## hackbird (20. Mrz 2010)

Komme gerade nicht mit.

var elements = document.getElementsByTagname("img");
for (var i = 0; i < elements.length; i++) {
  var el = elements_;
  el.onclick = function(target) {
    //dein handler code
  };
}

Wo dann die URL einfügen bzw. diesen Code:          target="_blank"onclick="window.open(URL);"        ????

Bzw: Weiß gerade nicht was du mit handler code meinst?_


----------



## Noctarius (20. Mrz 2010)

Ein Handler ist die Funktion, welche du an ein Event hängst (z.B. onclick). Die URL musst du irgendwo hinterlegen und dann anhand des entsprechenden img-Tags überlegen wie du diese bekommst (target ist das Element auf welchem das onclick ausgelöst wurde). Man könnte z.B. das alt-Attribute nutzen und dort die URL hinterlegen alternativ könnte man auch ein Array nutzen.


----------



## Tobse (20. Mrz 2010)

Des geht auch ohne array 

```
var elements = document.getElementsByTagname("img");
    for (var i = 0; i < elements.length; i++) {
        var el = elements[i];
        el.onclick = function() {
            window.open("<img src='"+this.src+"'>");
        };
        // Um zu zeigen, dass man mit dem Bild etwas anstellen kann, setzten wir css cursor auf pointer
        el.style.cursor="pointer";
    }
```
Woher hätte denn das Traget kommen sollen?
Der Nachteil hier ist eben, dass Das dann bei allen Bildern funktioniert.


----------



## Noctarius (20. Mrz 2010)

Target ist in der onclick Handler Definition festgelegt und gibt dir das Click-Target raus, also das DOM-Element auf welches geklickt wurde.


----------



## Tobse (20. Mrz 2010)

Oh, sorry, hab ich nich gewusst. Hab halt immer this genmommen xD


----------



## Noctarius (20. Mrz 2010)

Korrektur, es wird das Event-Object als Parameter durchgereicht. Das Target bekommt man per event.target


----------

