5

我目前正在开发一个文本到符号转换工具(非营利),我遇到了这个问题:

对于文本的所见即所得编辑,我想使用一个不错的小型所见即所得编辑器(如 jHtmlArea)。这个编辑器将显示浮动 div,所以我必须拦截很多按键(空格/箭头/等)

目前,我的 html 区域是这样加载的:

<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;
                });
            }

这段代码的问题是 this.editor 没有 pasteHTML 方法。如何从 this(=htmlarea).event 使用此方法?

这很可能是一个相当初学者的问题,但我真的不知道在哪里看。

谢谢

4

2 回答 2

1

这是我的做法:

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

然后我可以参考:

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

这也为我提供了从 iFrame 外部处理我的 html 区域对象的句柄。

于 2011-11-07T15:07:33.217 回答
0

我认为您可能对“this”的使用感到困惑(我肯定在努力跟踪它所指的内容!)。

作为测试,你可以更换

this.pasteHTML(...)

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

或者可能

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

看看这是否有帮助?

于 2011-08-17T08:08:27.100 回答