Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在粘贴可编辑div时从文本中删除样式_Javascript_Gwt - Fatal编程技术网

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

Javascript 如何在粘贴可编辑div时从文本中删除样式,javascript,gwt,Javascript,Gwt,我有一个可编辑的div。我想当用户复制包含颜色或粗体文本的文本并将其粘贴到我的可编辑div中时,只应粘贴纯文本。 我的代码是 public void onModuleLoad() { final HTMLPanel html = new HTMLPanel("<div id='list'> </div>"); html.addStyleName("dv"); html.getElement().setAttribute("contenteditable",

我有一个可编辑的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);                                                                                          
 }-*/;
模块加载()上的公共void{
最终HTMLPanel html=新HTMLPanel(“”);
html.addStyleName(“dv”);
html.getElement().setAttribute(“contenteditable”、“true”);
RootPanel.get().add(html);
handleFileSelect1();
}
公共静态本机void handleFileSelect1()
/*-{      
/*-{   
函数handleFileSelect(evt){
警告(“粘贴”);
}
$doc.getElementById('list').addEventListener('paste',handleFileSelect,true);
}-*/;

这不起作用。,

使用第一次粘贴的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");
HTMLPanel html=newhtmlpanel(“”){
@凌驾
公共无效onBrowserEvent(事件){
超级浏览器事件(事件);
开关(event.getTypeInt()){
case Event.ONPASTE:{
//这里的逻辑是从内部文本设置内部HTML
getElement().setInnerHTML(getElement().getInnerText());
打破
}
}
}
};
sinkEvents(Event.ONPASTE);
html.addStyleName(“dv”);
html.getElement().setAttribute(“contenteditable”、“true”);

注意:您可以朝这个方向思考。同时,我也在尝试解决例外情况。

您是在尝试删除html标记,还是仅将html标记作为纯文本?我只需要纯文本它为过去的事件提供警报,但如何才能获得纯文本text@mark请看一看