Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Oktober

SELFHTML Forumsarchiv
IE reagiert nicht auf onclick-Action

Informationsseite
  1. Seite (JAVASCRIPT) IE reagiert nicht auf onclick-Action von wizzy, 30. 10. 2007, 16:07
nach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: wizzy, 30. 10. 2007, 16:07

Hallo,

mit folgendem Script lade ich mehrere Bilder in meine Seite. (hier als Beispiel nur für ein Bild. Im Firefox und in Opera funktioniert es einwandfrei, aber der IE macht nicht alles. Er lädt die Bilder rein und zeigt sie an, aber wenn ich drauf klicke, passiert nix.

Woran könnte das liegen?
Hier mal das Script:

var newPicture = document.createElement("img");      //neues Bild
var newSource = document.createAttribute("src");     //Bildquelle
var newAction = document.createAttribute("onclick"); //Action

newSource.nodeValue = "pictures/preview/smallPic.jpg";   //Source
newAction.nodeValue = "window.document.images[0].src = 'pictures/bigPic.jpg';" ;                                       //Action

var myDiv = document.getElementById("myDiv");        //Target
newPicture.setAttributeNode(newSource);
newPicture.setAttributeNode(newAction);

myDiv.appendChild(newPicture);                      Bild einfügen



Ist denn so was wie "window.document.images[0].src" mit dem IE nicht kompatibel?

Gibt's so was wie den Firebug oder Web Developer auch für den IE, damit man solche Fehler direkt debuggen kann?

Danke schon mal,
wizzy

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Gunnar Bittersmann, 30. 10. 2007, 16:30

Hello out there!

»» Ist denn so was wie "window.document.images[0].src" mit dem IE nicht kompatibel?

Doch, aber createAttribute()/setAttributeNode() nicht. Warum auch so kompliziert?

var newPicture = document.createElement("img");      //neues Bild
newPicture.src = "pictures/preview/smallPic.jpg";    //Source
newPicture.onclick = function ()
{
  window.document.images[0].src = 'pictures/bigPic.jpg'; //Action
};




»» Gibt's so was wie den Firebug oder Web Developer auch für den IE, damit man solche Fehler direkt debuggen kann?

Ja.

See ya up the road,
Gunnar
--
„Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Antipitch, 30. 10. 2007, 17:31

Hi Gunnar,

kurze Rückfrage:

»» »» Ist denn so was wie "window.document.images[0].src" mit dem IE nicht kompatibel?
»»
»» Doch, aber createAttribute()/setAttributeNode() nicht.
                     ^                  ^

Meinst du das generell? Bzw. welchen IE meinst du (für 6 u. 7 wär mir das neu)?


Gruß
Antipitch

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Der Martin, 30. 10. 2007, 17:47

Hallo,

»» »» Doch, aber createAttribute()/setAttributeNode() nicht.
»»                      ^                  ^
»» Meinst du das generell? Bzw. welchen IE meinst du (für 6 u. 7 wär mir das neu)?

sagen wir's anders: Der IE kennt zwar createAttribute() und Co., hat aber Probleme mit deren Anwendung. Das direkte Setzen der entsprechenden Objekt-Eigenschaft ist daher nicht nur einfacher (IMHO), sondern auch weniger problematisch.

Ciao,
 Martin

--
Dieser Satz wurde in mühsamer Kleinstarbeit aus einzelnen Wörtern zusammengesetzt.
  (Hopsel)

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Antipitch, 30. 10. 2007, 18:03

Hi Martin,

danke für die Antwort. Beispiel für 'ne problematische Anwendung fällt dir nicht zufällig spontan ein, oder (neulich mal benutzt u. generelles Interesse, wollte die Antwort für den vorliegenden Fall nicht in Frage stellen ;-)

Gruß
Antipitch

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Der Martin, 30. 10. 2007, 18:16

Hi,

»» Beispiel für 'ne problematische Anwendung fällt dir nicht zufällig spontan ein, ...

der OP hat doch ein feines Beispiel geliefert, oder nicht?

Ciao,
 Martin

--
Moskito, ergo summ.

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Antipitch, 30. 10. 2007, 20:59

Hi Martin,

hätte gedacht, dass das in diesem Fall eher an der Erzeugung bereits vorhandener Attribute liegen könnte (siehe Struppi's posting). Aber gerade nochmal durchgespielt, die Attribute gelöscht und neu gesetzt. Handler Attribut wird zwar mit Wert in der Dev. Toolbar angezeigt, aber bewirken tut er nichts (nicht mal ein einfaches alert, scheint also weniger daran zu liegen, dass in diesem Fall das erzeugte Element das event target war). Wieder was gelernt, Microsoft at its best...


Gruß
Antipitch

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Jonathan, 31. 10. 2007, 10:34

Hallo Antipitch,

»» danke für die Antwort. Beispiel für 'ne problematische Anwendung fällt dir nicht zufällig spontan ein

Ganz prinzipiell hat der IE Probleme bei Sachen, die man zusätzlich über vordefinierte Eigenschaften lösen kann. Ich hab jetzt nicht alles getestet, aber heiße Kandidaten wären hier Eventhandler, class-Attribute, style-Eigenschaften usw.

Im IE dürften also z.B. objekt.onClick, objekt.className, objekt.style mehr oder weniger funktionieren während ein setzen über entsprechende Attribute vermutlich nicht zum gewünschten Effekt führt. Der IE speichert dann z.B. das neue Attribut (das man z.B. wieder mit getAttribute abrufen kann), aktualisiert aber den Eventhandler nicht oder ändert den Style nicht. Ob das im IE7 besser geworden ist kann ich nicht sagen, ich gehe aber eher nicht davon aus.


Jonathan
--
Selfcode: ie:( fl:{ br:> va:) ls:& fo:) rl:? ss:} de:> js:| ch:? mo:} zu:)

nach obennach unten

IE reagiert nicht auf onclick-Action

Die folgende Nachricht zum Thema stammt von: Struppi, 30. 10. 2007, 16:55

Nur zur Ergänzung.

»» var newPicture = document.createElement("img");      //neues Bild

Ein Bild hat bereits diese Attribute:
»» var newSource = document.createAttribute("src");     //Bildquelle
»» var newAction = document.createAttribute("onclick"); //Action

Du kannst dir mal die Liste aller Attribute ausgeben lassen:

var newPicture = document.createElement("img");      //neues Bild
var attr = [];
for(var a in newPicture) attr.push(a);
alert(
'Eigenschaften eines IMAGE Objektes:\n' + attr.join('\n')
);


d.h. es ist nicht nötig diese zu erzeugen, daher kannst du ohne Probleme den von Gunnar vorgeschlagenen Weg gehen.

Struppi.

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Oktober

© 1998-2006 Seite Impressum, Software: Classic Forum