繁体   English   中英

删除用于复制+粘贴的富文本格式? (跨浏览器)

[英]Removing rich text formatting for copy + paste? (Cross Browser)

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

每当用户从我的AspDotNetStorefront网站复制文本并将其粘贴到Word文档时,粘贴的文本就会包含灰色背景。 我可以在我的网站上采取任何措施来防止将此富文本格式粘贴功能粘贴到文档上吗?

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

 .unselectable{ position:absolute; z-index:1; color:green; -webkit-user-select:none; } .selectable{ position:absolute; z-index:2; color:rgba(0,0,0,0); -webkit-user-select:text; } 
 <p class="unselectable">Lorem</p> <p class="selectable">Lorem</p> 

您可以使用clippy库https://github.com/mojombo/clippy将副本添加到剪贴板按钮。 这可以帮助删除格式。

如果您不想使用Flash,可以尝试执行以下操作,以方便地复制文本而无需格式化:

CSS:

#box {background-color:gray; color:white;width:200px;height:400px;align:center;margin-left:50px;padding:30px}
#copy {position:fixed;top:15px;left:200px;text-decoration:underline}

HTML:

<div id="box">
    <div id="copy" onclick="selectable('p')">Click to select text</div>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla lacinia eros et justo pulvinar pulvinar. Pellentesque nec nisl feugiat, cursus lorem sed, venenatis sem. Curabitur vitae commodo ante, a pellentesque ligula. Morbi sit amet tincidunt ipsum. Fusce rutrum massa at velit dignissim accumsan. Donec hendrerit lorem sed leo viverra, vel cursus sapien lobortis. Praesent quis ligula non justo rhoncus placerat eu non leo. Pellentesque vitae congue enim. Quisque eget turp</p></div> 

JavaScript:

selectable=function(selector){
    var $elem=$(selector);
    innerHTML=$(selector).html()  ;
    $elem.hide();
    $elem.parent().append($('<textarea />').val(innerHTML).css({height:'400px'}));
    $('textarea').select();
};

该代码不是很漂亮,只是为了演示这个概念。

JSFIDDLE: http : //jsfiddle.net/rXG2G/

您可以拦截复制事件,获取没有样式的选择,然后将其放入剪贴板。

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();
});

您的问题与javascript,html或css无关。

默认情况下,在Word中粘贴文本会保留格式。 要粘贴而不格式化用户,需要右键单击Word文档并执行Paste Special...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM