1

例子

clipboardData我已阅读Android 上的 Chrome 不支持将纯文本从内容复制到内容可编辑元素(如这篇文章)。当您在移动设备上运行上面的示例时,该示例旨在从粘贴的文本中删除所有格式,该text变量返回一个空字符串。这只发生在 Android 上的 Chrome 中。所以我想知道是否有解决方法。

从 JavaScript 修改的示例代码在粘贴事件中获取剪贴板数据(跨浏览器)

$('#editableDiv').on('paste',function(e) { 
      e.preventDefault();
      var text;
      if( e.originalEvent.clipboardData ){
        text = (e.originalEvent || e).clipboardData.getData('text/plain');

        if(text === ''){

           console.log('Android Problem');  

        }

        document.execCommand('insertText', false, text);
      }
      else if( window.clipboardData ){
        text = window.clipboardData.getData('Text');
      if (window.getSelection)
        window.getSelection().getRangeAt(0).insertNode( document.createTextNode(text) );
      }
      console.log(text);
});

更新:我想出了一个解决方法,即触发一个弹出窗口让用户粘贴文本。不理想,但可以完成删除格式的工作。我正在寻找更多解决方法/建议。

   if( e.originalEvent.clipboardData ){
    text = (e.originalEvent || e).clipboardData.getData('text/plain');
    if(text === ''){       
        text = prompt('Paste something..');  
    }
    document.execCommand('insertText', false, text);
  }
4

0 回答 0