Ergebnis 1 bis 12 von 12
  1. #1
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Guten Morgen,

    seit Montag beschäftige ich mich ausführlicher mit JS. Mein Skript hatte auch wunderbar funktioniert ... bis ich es per GM installieren wollte. Da hat natürlich nichts mehr geklappt.
    Das Ziel ist es in einem bestimmten Textfeld das Komma in den Punkt umzuwandeln sowie nur Ziffern und ein paar Steuerelemente zu erlauben.

    Hier einmal mein erstes Skript:


    Code:
    //==UserScript==
    // @name Test1
    // ==/UserScript==
    
    <html>
    <head>
    
    <script type="text/javascript">
    <!--
    // Diese Funktion wandelt Komma in Punkt um
    function replace(id) {
    
    
    with(id) {
    
    var oldvalue = value;
    
    var newvalue = oldvalue.replace(/,/g,".");
    value = newvalue;
    }
    }
    //-->
    </script>
    
    </head>
    
    
    <script type="text/javascript">
    <!--
    // Diese Funktion erlaubt nur Ziffern und 4 Steuerelemente
    function pruefe(event) {
    
    var keycode;
    if (window.event) {
    keycode = window.event.keycode;
    } else if (event) {
    keycode = event.which;
    } else {
    return true;
    }
    if (47 < keycode) {
    if (keycode < 58) {
    return true;
    }
    }
    var keycodeascii = new Array(0,8,44,46);
    while (keycodeascii.length > 0) {
    if (keycode == keycodeascii.pop()) {
    return true;
    }
    }
    return false;
    }
    //-->
    </script>
    
    // Hier habe ich die Felder erstellt, in welchen in die Funktionen erfolgreich getestet habe
    Bla: <input type="text" value="" name="hello" id="test1" size="30" onChange="replace(test1)" onkeypress="return pruefe(event)"/>
    Bli : <input type="text" value="" name="hello" id="test2" size="30" onChange="replace(test2)" onkeypress="return pruefe(event)"/>
    Blub: <input type="text" value="" name="hello" id="test3" size="30" onChange="replace(test3)" onkeypress="return pruefe(event)" />
    
    
    </body>
    </html>

    Hier die replace-Funktion für Greasemonkey, welche auch bestens funktioert. Vielleicht ist sie etwas umständlich geschrieben...

    Code:
    // ==UserScript==
    // @name Replace
    // ==/UserScript==
    
    
    (function() {
    
    surrogate = function() {
    var oldValue = document.getElementById('test1').value;
    var newValue = oldValue.replace(/,/, ".");
    
    document.getElementById('test1').value = newValue;
    
    var oldValue = document.getElementById('test2').value;
    var newValue = oldValue.replace(/,/, ".");
    
    document.getElementById('test2').value = newValue;
    
    var oldValue = document.getElementById('test3').value;
    var newValue = oldValue.replace(/,/, ".");
    
    document.getElementById('field-abgerechnet').value = newValue
    }
    
    var oldValueField= document.getElementById('test1');
    oldValueField.addEventListener("blur", surrogate, false);
    
    
    var oldValueField= document.getElementById('test2');
    oldValueField.addEventListener("blur", surrogate, false);
    
    
    var oldValueField= document.getElementById('test3');
    oldValueField.addEventListener("blur", surrogate, false);
    
    
    
    })();
    Allerdings hänge ich total bei der check-Funktion, welche momentan noch so aussieht:

    Code:
    // ==UserScript==
    // @name Check
    // ==/UserScript==
    
    
    (function() {
    
    check = function (event) {
    
    var keycode = document.getElementById('test1').value;
    if (window.event) {
    keycode = window.event.keycode;
    } else if (event) {
    keycode = event.which;
    } else {
    return true;
    }
    if (47 < keycode) {
    if (keycode < 58) {
    return true;
    }
    }
    var keycodeascii = new Array(0,8,44,46);
    while (keycodeascii.length > 0) {
    if (keycode == keycodeascii.pop()) {
    return true;
    }
    }
    return false;
    }
    
    var keycodeField= document.getElementById('test1');
    keycodeField.addEventListener("click", check, false);
    
    
    })()
    Hier sollen eigentlich nur Ziffern und die 4 Steuerlemente in dem Feld test1 erlaubt werden.
    Kann mir vielleicht irgendjemand Tipps, Denkanstöße, etc. geben?
    Bin auch für Kritik für die funktionierenden Skripts offen und für jede Hilfestellung dankbar.
    Vielleicht wird's ja was

    Danke schonmal im Voraus und ganz liebe Grüße,
    Wumbsie

    PS: Ja, ich habe bereits diverse Foren durch und mich in diverse Tutorials eingelesen, habe aber trotzdem ein wohl starkes Brett vor dem Kopf

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Zitat Zitat von wumbsie Beitrag anzeigen
    Code:
    keycodeField.addEventListener("click", check, false);
    fällt dir was auf?

  3. #3
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Ich hoffe mal, dass du auf das hier anspielst:

    Code:
     keycodeField.addEventListener("keypress", check, false);
    Das hat irgendwie nicht funktioniert ... vielleicht denke ich gerade aber auch um zig Ecken un die Lösung ist ziemlich simpel?

    Danke Dir aber schonmal

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript


  5. #5
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Fehlerkonsole ist leer?

    und sowas, ist natürlich völliger Unsinn:
    PHP-Code:
    check = function (event) {
    if (
    window.event) { 
    Du schreibst ein GM Skript! Das ist nicht für den IE.

  6. #6
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Hm, die Fehlerkonsole ist nun leer. Vorher wurde Zeile 28 keycodeField.addEventListener("keypress", check, false);
    blau markiert. Da hatte ich den var keycodeascii aber außen vor gelassen...

  7. #7
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Freut mich das wir dir weiterhelfen konnten.

  8. #8
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Fehlerkonsole ist leer?

    und sowas, ist natürlich völliger Unsinn:
    PHP-Code:
    check = function (event) {
    if (
    window.event) { 
    Du schreibst ein GM Skript! Das ist nicht für den IE.
    Mir ist bewusst, dass das nicht die richtige Syntax für GM ist. Allerdings habe ich hier überhaupt keine Anlaufstelle, wie ich das umschreiben soll. Bei der replace function habe ich durch herumtüfteln vieles herausbekommen, hänge nun aber hier.
    Hättest du evtl. einen Tipp wie es richtig heißen würde? Ich habe viel von der replace-Funktion übernommen....

  9. #9
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Zitat Zitat von ein schlauer Beitrag anzeigen
    Freut mich das wir dir weiterhelfen konnten.
    Oh oh, nur weil die Fehlerkonsole leer ist, heißt es nicht, dass es funktionert.ich stehe nach wie vor vor dem problem, dass das Feld immer noch Buchstaben zulässt....

    Könntest du mir vielleicht mit dem "Unsinn" helfen?

    Danke

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Schon preventDefault probiert?
    Code:
    function check(event) {
    	var keycode = event.which;
    	
    	if (47 < keycode && keycode < 58){
    		return true;
    	}
    	
    	var keycodeascii =[0, 8, 44, 46];
    	for (var i = 0; i < keycodeascii.length; i++){
    		if (keycode == keycodeascii[i]) {
    			return true;
    		}
    	}
    	event.preventDefault();
    	return false;
    }
    document.getElementById('test1').addEventListener("keypress", check, false);

  11. #11
    wumbsie ist offline Mitglied
    registriert
    10-06-2010
    Beiträge
    26

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Super,

    ich danke Dir von ganzem Herzen. das war genau das, was ich haben wollte.

    Vielen, vielen, vielen Dank. Ich habe seit gestern morgen daran gesessen und konnte mir keinen Reim machen.

    1000 Dank.

    Wumbsie

  12. #12
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Javascript funktioniert, Probleme beim Umschreiben in ein Greasemonkeyscript

    Bitte - gern geschehen.

Ähnliche Themen

  1. Bräuchte hilfe beim umschreiben von einem script
    Von sino23 im Forum JavaScript
    Antworten: 17
    Letzter Beitrag: 08-06-2010, 17:50
  2. Probleme beim entfernen eines Events [Javascript]
    Von Mike1990 im Forum JavaScript
    Antworten: 17
    Letzter Beitrag: 04-05-2010, 11:57
  3. Antworten: 1
    Letzter Beitrag: 02-05-2008, 14:57
  4. Antworten: 11
    Letzter Beitrag: 09-02-2007, 14:21
  5. Hilfe beim Script umschreiben!?
    Von BigMage im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 14-05-2003, 12:55

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •