哟,
好一直在这个问题上涂鸦了一段时间:如何复制/剪切样式文字而不带任何款式行李(背景颜色,颜色等)?
一些被挫败的攻击路线:
无论如何,想法?对于具有白色背景颜色的网站来说,它似乎非常有用。
答案 0 :(得分:5)
我现在没有时间编写示例代码,但您可以通过键盘快捷键触发剪切/复制。它不适用于通过上下文菜单或“编辑”菜单选项进行剪切/复制,因为它依赖于在剪切或复制事件触发之前更改用户选择。
步骤:
window.getSelection().getRangeAt(0).cloneContents()
执行此操作,但您需要单独的IE代码< 9,你应该检查选择是否已折叠。window.setTimeout()
添加一个短暂的延迟(几毫秒),调用一个删除屏幕外元素并恢复原始选择的函数。答案 1 :(得分:0)
您是否需要在浏览器中为每个用户执行此操作?
如果不 - 它只适合您 - 那么您可以使用Clipmate软件执行此操作。
http://www.clipmate.com/index.htm
它具有删除所有样式的功能。
答案 2 :(得分:0)
触发复制或剪切后,您可以删除html标记,只删除带有一些正则表达式的文本
var String = Sample.replace(/(<([^>]+)>)/ig,"");
此外,如果您将存储的文本存储在ID为“sample_div”的div中
使用var String=$('sample_div').text('');
仅获取
答案 3 :(得分:0)
鉴于当前的浏览器功能,您可以拦截复制事件,获取没有样式的选择,然后将其放入剪贴板。
我已经在Chrome / Safari / Firefox中测试了此代码。相信在MS浏览器上也应该工作。
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();
});