mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 20:23 Benutzername: Passwort: Auto-Login

Thema: [JavaScript] Eventlistener im IE vom 01.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [JavaScript] Eventlistener im IE
Seite: 1, 2  Weiter
Autor Nachricht
Gargoyle
Threadersteller

Dabei seit: 19.05.2005
Ort: -
Alter: 39
Geschlecht: Männlich
Verfasst Sa 01.03.2008 12:52
Titel

[JavaScript] Eventlistener im IE

Antworten mit Zitat Zum Seitenanfang

Guten Tag

ich lese mich gerade in JavaScript ein. Das nachfolgende Script ist also mehr eine Übung. In den W3C Browsern funktioniert das soweit auch, nicht aber im IE. Könnte mir schnell jemand von euch auf die Sprünge helfen?

Html:
Code:
//Im Headteil:
  <script type="text/javascript" src="preview.js"></script>

<body onload='init()'>
  <a rel="rckyiewer" href="bilder/uno.jpg" target='_blank'><img src="bilder/checker.jpg" alt="" /></a>
  <a rel="rckyviewer" href="bilder/due.jpg" target='_blank'><img src="bilder/checker.jpg" alt="" /></a>
  <a rel="rckyviewer" href="bilder/tre.jpg" target='_blank'><img src="bilder/checker.jpg" alt="" /></a>
</body>


JS:
Code:
var container;
var vorschau;
var links;
var i;
//Initialisierung         //////////////////////////////////////////////////////////
function init () {
   
   function zuweisen () {
      links=document.links;
      
      for(i=0;i<links.length;i++) {
         if(links[i].rel=='rckyviewer'){

            if(document.attachEvent){
               links[i].attachEvent('onmouseover',preview);
            } else if (document.addEventListener){
               links[i].addEventListener('mouseover',preview,false);
            } else {
               links[i].onmouseover=preview;
            }
         }
      }
   }
   
   function preview (e) {
      vorschau.src=this.href;
   }
   
   //Erstellen des Containers
   function container () {
      if(document.getElementsByTagName) {
         //Elemente Auswählen
         var bod=document.getElementsByTagName('body');
         vorschau=document.createElement('img');
         container=document.createElement('div');
         
         //Vorschaucontainer einfügen
         bod[0].appendChild(container);
         container.appendChild(vorschau);
         
         //Aussehen des Containers
         container.style.position='absolute';
         //container.style.visibility='hidden';
         container.style.top='300px';
         container.style.left='300px';
      
         zuweisen();
      } else {
      }
   }
   
   container();
}


Die Übergabe des Links funktioniert im IE nicht! Warum?

Thx
Gargoyle


Zuletzt bearbeitet von Gargoyle am Sa 01.03.2008 12:54, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 01.03.2008 14:12
Titel

Antworten mit Zitat Zum Seitenanfang

Lass dir in preview() mal das this keyword ausgeben.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Gargoyle
Threadersteller

Dabei seit: 19.05.2005
Ort: -
Alter: 39
Geschlecht: Männlich
Verfasst Sa 01.03.2008 15:00
Titel

Antworten mit Zitat Zum Seitenanfang

hmm, this wird im IE zwar als [object] erkannt, ich kann aber nicht auf seine attribute zugreifen, die sind undefiniert... komischerweise wird in den W3C Browsern z.B. für this an der gleichen Stelle immer die URL des Links ausgegeben, was meiner Meinung nach auch nicht sein sollte (aber wie gesagt ich arbeite mich auch erst grad ein).

Zuletzt bearbeitet von Gargoyle am Sa 01.03.2008 15:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 01.03.2008 15:31
Titel

Antworten mit Zitat Zum Seitenanfang

this zeigt in dem Fall im IE auf das window objekt und ist somit nutzlos.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Raumwurm

Dabei seit: 21.12.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 01.03.2008 18:56
Titel

Antworten mit Zitat Zum Seitenanfang

jo, wenn dann wäre es sinnvoll das element zu übergeben,
das den event ausgelöst hat. Also so:
Code:

for(i=0;i<links.length;i++) {
         if(links[i].rel=='rckyviewer'){
         links[i].onmouseover = function() {
            preview(this);
         }
         }
      }

und die preview() dann so:
Code:

function preview (el) {
      vorschau.src=el.href;
   }
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 01.03.2008 19:22
Titel

Antworten mit Zitat Zum Seitenanfang

Lies dir das mal durch: http://www.mediaevent.de/javascript/event_listener.html

oder benutz n JS-Framwork, bspw. prototype.
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 01.03.2008 21:16
Titel

Antworten mit Zitat Zum Seitenanfang

http://aktuell.de.selfhtml.org/artikel/javascript/organisation/

wird für dich sicher auch interessant sein.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Gargoyle
Threadersteller

Dabei seit: 19.05.2005
Ort: -
Alter: 39
Geschlecht: Männlich
Verfasst So 02.03.2008 14:29
Titel

Herzlichen Dank

Antworten mit Zitat Zum Seitenanfang

@bacon: Danke... da hätt ich eigentlich auch selbst draufkommen können ich Horst!
@m: Danke auch dir... mit OOP steh ich leider etwas auf Kriegsfuss, hab die Umstellung bereits bei AS und PHP versucht und dann immer beiseite geschoben... *zwinker*
  View user's profile Private Nachricht senden
 
Ähnliche Themen AS 3 EventListener deaktivieren
eventListener aus Array erzeugen mit AS3
Brauche etwas js-Hilfe … (eventListener)
Flash CS3 - EventListener soll variable ändern
[javascript] mit <select> feld wert an javascript funk
Javascript
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.