2010-02-10 8 views
5

Ich bin derzeit ein Text-zu-Symbol-Konvertierungs-Werkzeug (non-profit) developping, und ich habe dieses Problem:jHtmlArea Falle keypress Handhabung

Für das WYSIWYG-editting des Textes, ich Ich benutze einen netten kleinen WYSIWYG-Editor (wie jHtmlArea). Dieser Editor zeigt divs schwimmen, so dass ich eine Menge von Drücken von Tasten (spaces/Pfeilen/etc)

Derzeit mein HTML-Bereich geladen wie dieses abfangen:

<script type="text/javascript">  
$(function() { 
      $("#txtCustomHtmlArea").htmlarea({ 
       loaded: function() { 
       $(this.editor).keydown(function(event) { 
        if(event.keyCode == 32) { 
         this.pasteHTML('<b>test</b>'); 
         return false; 
        } 

        return true; 
       }); 
      } 

Das Problem dabei code ist, dass this.editor nicht über die Methode pasteHTML verfügt. Wie kann ich diese Methode von diesem (= htmlarea) .vent verwenden?

Dies ist höchstwahrscheinlich eine ziemlich Anfängerfrage, aber ich bin wirklich ratlos, wohin ich schauen soll.

Danke

Antwort

0

Ich glaube, du bist vielleicht selbst verwirrt mit der Verwendung von ‚this‘ bekommen (ich auf jeden Fall im Auge zu behalten, was es bedeutet! Bin zu kämpfen).

Als Test können Sie die

this.pasteHTML(...) 

mit

$("#txtCustomHtmlArea").pasteHTML(...) 

oder vielleicht

$("#txtCustomHtmlArea").editor.pasteHTML(...) 

und sehen ersetzen, wenn das hilft?

1

Hier ist, wie ich es tun:

$("#my-text-area").htmlarea({ 
     loaded: function() { 
      $.myControl = { jhtmlarea: this }; 
     } 
    }); 

Dann kann ich Referenz:

$($.myControl.jhtmlarea.editor.body).keypress(function (e) { }); 

Das gibt mir auch einen Griff zu meinem html-Bereich Objekt von außerhalb des iFrame.

+0

nett ein Kumpel. reinigen. –