DeletedUser
Gast
So Leute, ich hatte jetzt selbst etwas mit dem öseligen 'unsafeWindow' zu kämpfen. Im Forum hier fand ich nichts dazu, also dachte ich ich schreib einfach was dazu!
Anfürsich ist 'unsafeWindow' eine tolle Sache, allerdings gehen weder 'GM_...'-Funktionen noch mag Opera dieses Objekt.
Um das nun zu umgehen, kann man folgendes machen, man verwendet die Funktion 'addEventListener(<action>,<function>)' mit einem kleinen Trick.
Hier mal ein Beispiel:
Wie man sehen kann wird um die eingentliche Funktion 'foo' die wir ja aufrufen wollen, noch eine andere Funktion ohne Namen gelegt. Das hat den Grund das sonst die Funktion 'foo' direkt beim laden des Scriptes aufgerufen werden würde und 'addEventListener' würde einen falschen Parameter bekommen. Deswegen sollte man um die gewollte Funktion noch eine namenlose Funktion legen. Ein anderer Grund ist das ich ja vielleicht auch Parameter mit übergeben möchte!
Und schwupps können 'GM_...'-Funktionen benutzt werden und Opera freut sich auch.
Anfürsich ist 'unsafeWindow' eine tolle Sache, allerdings gehen weder 'GM_...'-Funktionen noch mag Opera dieses Objekt.
Um das nun zu umgehen, kann man folgendes machen, man verwendet die Funktion 'addEventListener(<action>,<function>)' mit einem kleinen Trick.
Hier mal ein Beispiel:
Code:
function foo(){
alert('Hallo Welt');
}
//Sobald ein bestimmter Link angeklickt, wird soll 'foo' aktiviert werden.
<a-Element>.addEventListener('click', foo, false);
//Sobald ein bestimmter Link angeklickt, wird soll 'foo' mit Parametern aktiviert werden.
<a-Element>.addEventListener('click' , function(param1){foo(param1,param2);} , false);
//Für den InternetExplorer, der da wieder aus der Reihe tanzt:
<a-Element>.attachEvent('onclick' , foo );
//Für den InternetExplorer (mit Parametern), der da wieder aus der Reihe tanzt:
<a-Element>.attachEvent('onclick' , function(param1){foo(param1,param2);} );
Wie man sehen kann wird um die eingentliche Funktion 'foo' die wir ja aufrufen wollen, noch eine andere Funktion ohne Namen gelegt. Das hat den Grund das sonst die Funktion 'foo' direkt beim laden des Scriptes aufgerufen werden würde und 'addEventListener' würde einen falschen Parameter bekommen. Deswegen sollte man um die gewollte Funktion noch eine namenlose Funktion legen. Ein anderer Grund ist das ich ja vielleicht auch Parameter mit übergeben möchte!
Und schwupps können 'GM_...'-Funktionen benutzt werden und Opera freut sich auch.
Zuletzt bearbeitet von einem Moderator: