Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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 删除复制的富文本格式+;粘贴(跨浏览器)_Javascript_Html_Css_Aspdotnetstorefront - Fatal编程技术网

Javascript 删除复制的富文本格式+;粘贴(跨浏览器)

Javascript 删除复制的富文本格式+;粘贴(跨浏览器),javascript,html,css,aspdotnetstorefront,Javascript,Html,Css,Aspdotnetstorefront,我不确定Javascript或CSS修复程序是否可以在我的网站上修复此问题。这似乎只发生在Chrome上(还不确定IE) 每当用户从我的AspDotNetStorefront站点复制文本并将其粘贴到Word文档时,粘贴的文本都会包含灰色背景。在我的网站上,我可以做些什么来防止富文本格式粘贴功能粘贴到文档上 除了Microsoft Word的默认粘贴设置外,我不确定是什么原因导致了这种情况。您可以使用clippy库添加“复制到剪贴板”按钮。这有助于删除格式。您的问题与javascript、html

我不确定Javascript或CSS修复程序是否可以在我的网站上修复此问题。这似乎只发生在Chrome上(还不确定IE)

每当用户从我的AspDotNetStorefront站点复制文本并将其粘贴到Word文档时,粘贴的文本都会包含灰色背景。在我的网站上,我可以做些什么来防止富文本格式粘贴功能粘贴到文档上


除了Microsoft Word的默认粘贴设置外,我不确定是什么原因导致了这种情况。

您可以使用clippy库添加“复制到剪贴板”按钮。这有助于删除格式。

您的问题与javascript、html或css无关


默认情况下,在Word中粘贴文本将保留格式。要粘贴而不设置格式,用户需要右键单击Word文档并执行一个
粘贴特殊操作…

如果不想使用Flash,您可以尝试以下操作以轻松复制文本而不设置格式:

CSS:

HTML:


单击以选择文本
Lorem ipsum dolor sit amet,是一位杰出的献身者。没有爱,只有爱。佩伦茨克(Pellentsque nec nisl feugiat)、库苏斯·洛雷姆(cursus lorem sed)、维尼那提(Venetatis sem)。Curabitur vitae commodo ante,一种佩林式舌苔。Morbi坐在amet tincidunt ipsum。Fusce rutrum massa在维利特威严酒店。Donec hendrerit lorem与利奥·维韦拉(leo viverra)合作,与智者洛博蒂斯(lobortis)合作。这句话的意思是:“我们的狮子座不是狮子座。”。佩伦茨克先天性生命。Quisque eget turp

JavaScript:

selectable=function(selector){
    var $elem=$(selector);
    innerHTML=$(selector).html()  ;
    $elem.hide();
    $elem.parent().append($('<textarea />').val(innerHTML).css({height:'400px'}));
    $('textarea').select();
};
selective=功能(选择器){
变量$elem=$(选择器);
innerHTML=$(选择器).html();
$elem.hide();
$elem.parent().append($('').val(innerHTML.css({height:'400px'}));
$('textarea')。选择();
};
代码并不漂亮,只是为了演示概念

jsidle:

。不可选择{
位置:绝对位置;
z指数:1;
颜色:绿色;
-webkit用户选择:无;
}
.可选{
位置:绝对位置;
z指数:2;
颜色:rgba(0,0,0,0);
-webkit用户选择:文本;
}

Lorem


Lorem

您可以截取复制事件,获取不带样式的选择,并将其放入剪贴板

document.addEventListener('copy', function(e) {
  const text_only = document.getSelection().toString();
  const clipdata = e.clipboardData || window.clipboardData;  
  clipdata.setData('text/plain', text_only);
  clipdata.setData('text/html', text_only);
  e.preventDefault();
});

通常,右键单击“粘贴为纯文本”,或[ctrl]+[shift]+[V]执行此操作。你也可以先粘贴,然后在记事本上剪切,将其转换为纯文本。谢谢:)但我想知道一种用户不必做这些事情的方法。不一定。我正试图找出一种用户不必经历这些步骤的方法(我想到的是那些不知道如何粘贴特殊内容的用户)。我想在我这边处理它,我是否可以使用类似于
::selection
的东西。在这种情况下,您可以使用像Pim建议的复制到剪贴板按钮。当用户单击它时,您可以复制文本的一个版本,而不需要格式化。
selectable=function(selector){
    var $elem=$(selector);
    innerHTML=$(selector).html()  ;
    $elem.hide();
    $elem.parent().append($('<textarea />').val(innerHTML).css({height:'400px'}));
    $('textarea').select();
};
document.addEventListener('copy', function(e) {
  const text_only = document.getSelection().toString();
  const clipdata = e.clipboardData || window.clipboardData;  
  clipdata.setData('text/plain', text_only);
  clipdata.setData('text/html', text_only);
  e.preventDefault();
});