Rolf B: Javascript-Fehler im PaleMoon

Beitrag lesen

problematische Seite

Hallo Linuchs,

ja, das dürfte die Variable "event" sein. Frage ist: wo kommt sie her? Du deklarierst sie ja nicht oder zeigst nicht, wo sie deklariert wird.

event ist aber auch eine Variable, die bspw. vom IE bereitgestellt wurde, wenn man ein Event in einem onxxxxx Handler bearbeitet hat. Man konnte dann z.B. sowas schreiben:

<button onclick="myHandler(event)">Klack</button>

An dieser Stelle weiß ich nicht so genau, wie der Scope dieser event Variablen ist. In Chrome scheint sie global zu sein, so dass Du bei einem Klick dort das Mausevent hast. Da diese Variable legacy ist, hat PaleMoon sie möglicherweise nicht.

Aber Du kannst es einfach lösen.

getHelptext.js, Zeile 176ff:

    obj_help[i].addEventListener('click', function (event) {                
      getHelptextXY( this, event.clientX, event.clientY );
      event.stopPropagation(); 
    });

(1) Du rufst hier stopPropagation auf dem event-Parameter auf, den dein Klick-Handler bekommen hat. Brauchst Du den stopPropagation-Aufruf in getHelptextXY überhaupt noch?

(2) Wenn ja: Übergib event an die Funktion, statt event.clientX und event.clientY, dann kannst Du damit alles machen was Du brauchst. Oder, wenn Du X und Y unbedingt getrennt übergeben willst, übergib event zusätzlich. In event.currentTarget findest Du übrigens auch das Objekt, das geklickt wurde (event.target: Wo wurde das Event ausgelöst, event.currentTarget: Auf welchem Objekt ist der Eventhandler registriert, der das Event bearbeitet. Bei Bubbling relevant)

Rolf

--
sumpsi - posui - obstruxi