【问题标题】:how to remove style from text while paste in a editable div如何在粘贴到可编辑的 div 时从文本中删除样式
【发布时间】:2014-05-15 06:28:08
【问题描述】:

我有一个可编辑的 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);                                                                                          
 }-*/;

这不起作用。,

【问题讨论】:

  • 您是要删除 html 标签还是仅将 html 标签作为纯文本删除?
  • 我只想要纯文本
  • 它提供了我过去事件的警报,但我怎样才能获得纯文本

标签: javascript gwt


【解决方案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");

注意:你可以朝这个方向思考。同时我也在尝试解决异常情况。

【讨论】:

猜你喜欢
  • 2013-03-14
  • 2012-05-04
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 2013-06-11
相关资源
最近更新 更多