+ Antworten
Ergebnis 1 bis 3 von 3

Thema: G.Monkey - setAttribute onclick geht nicht

  1. #1
    TP-Member zocker macht alles soweit korrekt Avatar von zocker
    Registriert seit
    Jul 2006
    Beiträge
    44

    Question G.Monkey - setAttribute onclick geht nicht

    Ich versuche gerade mit Greasemonkey eine Navigation via Pfeiltasten der Tastatur zu erstellen hier der Code :

    Code:
    //<script> Tag in <head> packen
    var scriptIns = document.createElement("script");
    scriptIns.id ="func";
    scriptIns.type="text/javascript";
    document.getElementsByTagName("head")[0].appendChild(scriptIns);
    	
    //Inhalt d. injezierten <script> Tag
    var cont =  'function getKeyCode(event)';
    cont +=	    '{';
    cont +=	    ' alert("test");';      
    cont +=	    ' if (!event) event = window.event;';
    cont +=	    ' if (event.keyCode == 39) window.location = "'+nextLink+'";';
    cont +=	    ' else if (event.keyCode == 37)  window.location = "'+prevLink+'";';
    cont +=	    '}';
    
    //Inh. in den injezierten <script> Tag packen
    var scriptIns_cont = document.createTextNode(cont);
    document.getElementById("func").appendChild(scriptIns_cont);
    
    //Event auf <body> Tag setzen
    document.getElementsByTagName('body')[0].setAttribute( "onKeyup" , 'getKeyCode(event)' );
    Vor ein paar Monaten ging noch alles und nun kann ich einfach nicht das Problem finden.
    Alle Injezierungen werden lauf Firebug umgesetzt nur geschieht rein gar nix wen ich auf die Pfeiltasten drücke. Das Problem liegt wie ich glaube am setAttribute, da die Funktion nicht starten will.

    Findet jemand den Fehler ??
    Schreibfehler sind gewollt und wer sie findet und richtig zusammensetzt erhält die Formel um aus Wasser Bier zu machen

  2. #2
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Bei Greasemonkey musst du mit addEventlistener arbeiten, wenn ich mich nicht irre..
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  3. #3
    TP-Member zocker macht alles soweit korrekt Avatar von zocker
    Registriert seit
    Jul 2006
    Beiträge
    44

    Erledigt: G.Monkey - setAttribute onclick geht nicht

    Habe es jetzt mit dem EventListener:
    Code:
    document.getElementsByTagName('body')[0].addEventListener( "keypress" , getKeyCode, false );
    Dabei musste die Funktion Ausgelagert werden, d.H. das die Funktion nicht mehr injiziert wird sondern eigenständig im Script existiert.

    Es funktioniert, jedoch mit einem sehr nervigen Hacken ... das keypress wird nur getriggert wen ich etwas in einem input Feld eingebe.

    Gibt es da irgend eine Lösung ?
    ---------------------------------------------------------------------------------------------------------------------
    Edit : Mit

    Code:
    document.getElementsByTagName('body')[0].setAttribute( "onKeyup" , "getKeyCode(event.keyCode);" );
    und den nötigen Änderungen in der injizierten Funktion :

    Code:
    var cont =  'function getKeyCode(key)\n\
    				{\n\
    					if (key == 39) window.location = "'+nextLink+'";\n\
    					else if (key == 37)  window.location = "'+prevLink+'";\n\
    				}\n';
    Geht es auf einmal .. obwohl die Änderung eigentlich sehr sehr minimal vom ursprünglichem sind.

    Tjaa versteh das mal einer.

    ---------------------------------------------------------------------------------------------------------------------
    Edit : Ich merke das ich mir da ordentlich selbst ins Knie geschossen habe .... vor ein paar Monaten hatte ich nämlich noch kein NoScript installiert das mir die injizierungen blockt, da es denkt das das Script von der angesurften Seite kommt.

    Es ist daher gut möglich das alles von Anfang an geklappt hat.
    Geändert von zocker (27.05.2010 um 20:17 Uhr)

+ Antworten

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 04.11.2009, 11:36
  2. setAttribute funzt im ie nicht
    Von theo im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 04.01.2007, 20:53
  3. onClick funktioniert nicht !!
    Von bigtail im Forum HTML & CSS
    Antworten: 13
    Letzter Beitrag: 18.12.2006, 17:51
  4. Für alle Monkey Island fans
    Von Felix im Forum Einfach so ...
    Antworten: 18
    Letzter Beitrag: 08.08.2003, 16:28
  5. 2x onClick geht nicht?
    Von papa_sting im Forum Dreamweaver & andere Webeditoren
    Antworten: 4
    Letzter Beitrag: 21.10.2002, 22:44

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51