【问题标题】:How to make gwt's RichTextArea detect content pasting and cutting events?如何让 gwt 的 RichTextArea 检测到内容粘贴和剪切事件?
【发布时间】:2012-04-25 14:19:37
【问题描述】:

以下代码可以根据 KeyUp 事件使 RichTextArea 垂直自动增长或收缩,问题是当用户粘贴或剪切内容时如何做同样的事情(Google plus 已经实现了这一点)。MouseUp 和 CONTEXTMENU事件已尝试,没有运气。有人可以提供解决方案吗?谢谢。

public AutoResizeTextArea()
{
    new Timer()
    {
        @Override
        public void run()
        {
            (doc = ((FrameElement) getElement().cast()).getContentDocument()).getBody()
                    .setAttribute("style", "word-wrap:break-word;overflow:hidden;");
        }
    }.schedule(100);
}


@Override
public void onBrowserEvent(Event event)
{
    switch (DOM.eventGetType(event))
    {
        case Event.ONKEYUP:
            adjustHeight();
            break;
    }
}

private void adjustHeight()
{
    if (doc.getDocumentElement()
            .getOffsetHeight() != doc.getClientHeight())
    {
        setHeight((doc.getDocumentElement()
                .getOffsetHeight() + 19) + "px");
    }
}

【问题讨论】:

    标签: gwt copy-paste cut rich-text-editor autogrow


    【解决方案1】:

    这对我有用。我假设您的 RichTextArea 小部件 = richTextArea 变量。

    IFrameElement iFrame = IFrameElement.as(richTextArea.getElement());
    
    //listen for paste event
    addTextPasteHandler(iFrame);
    
    /**
     * Add a listener for the paste event
     * @param iframe
     */
    private native void addTextPasteHandler(IFrameElement iframe)
    /*-{
        if(iframe == null)
            return;
    
        var _this = this;
    
        var pasteFunction = function(e)
        {
            _this.@com.yourpackagepath.YourClass::handlePaste()();
        }
    
        iframe.contentWindow.addEventListener('paste', pasteFunction, true);
    
    }-*/;
    
    public void handlePaste() {
        Window.alert("Paste!");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2012-07-21
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多