粘贴在可编辑div中时如何从文本中删除样式

时间:2014-05-15 06:28:08

标签: javascript gwt

我有一个可编辑的div。我希望当用户复制包含颜色或粗体文本的文本并将其粘贴到我的可编辑div中时,只应粘贴纯文本。  我的代码是......

 public void onModuleLoad() {
  final HTMLPanel html = new HTMLPanel("<div id='list'> </div>");
  html.addStyleName("dv");
  html.getElement().setAttribute("contenteditable", "true");

  RootPanel.get().add(html);

  handleFileSelect1();

 }
  public static native void handleFileSelect1()
  /*-{      
    /*-{   
function handleFileSelect(evt){ 
    alert("paste");
}


$doc.getElementById('list').addEventListener('paste', handleFileSelect, true);                                                                                          
 }-*/;

这不起作用。

1 个答案:

答案 0 :(得分:1)

使用Element#getInnerText()和第一个粘贴HTML的例外情况一样正常。

HTMLPanel html = new HTMLPanel("<div id='list'> </div>") {
    @Override
    public void onBrowserEvent(Event event) {
        super.onBrowserEvent(event);
        switch (event.getTypeInt()) {
            case Event.ONPASTE: {
                // The Logic is here set inner HTML from the inner Text
                getElement().setInnerHTML(getElement().getInnerText());
                break;
            }
        }
    }
};
html.sinkEvents(Event.ONPASTE);

html.addStyleName("dv");
html.getElement().setAttribute("contenteditable", "true");

注意:您可以从这个方向思考。与此同时,我也在尝试解决异常案例。