javascript - 使用 CSS 或 Javascript 复制/剪切时从文本中删除样式

标签 javascript jquery css copy cut

哟,

好吧,这个问题已经研究了一段时间:如何在不带任何样式包袱(背景颜色、颜色等)的情况下复制/剪切样式文本?

几条已被挫败的攻击路线:

  1. 使用::select 设置不同的文本样式? 不起作用,::style 未被复制
  2. 使用 jQuery 的选择绑定(bind)设置所选文本的样式 这仅适用于输入,不适用于 p、div
  3. 通过绑定(bind)一个事件来使用 jQuery 进行复制/粘贴来拦截和删除样式? 无法访问复制的对象来删除内容,已尝试使用 e.preventDefault();然后返回事件对象,但这也不起作用
  4. 保存剪贴板数据后修改它? 也没有骰子,如果没有 flash 和某种确认,大多数浏览器不会让你进入这个

无论如何,想法?看起来它对于具有白色背景颜色的网站非常有用。

最佳答案

鉴于当前的浏览器功能,您可以拦截复制事件,获取没有样式的选择,并将其放入剪贴板。

我已经使用 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();
});

关于javascript - 使用 CSS 或 Javascript 复制/剪切时从文本中删除样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439210/

相关文章:

javascript - 使用 bootstrap nav-pill 在单击 Next 按钮时进行表单验证

php - 提交表单而不刷新

javascript - Hello bar 应用程序使我的导航移动崩溃。

javascript - 仅在 Tab 键时显示焦点轮廓,而不是在单击鼠标时显示焦点轮廓

html - Bootstrap 帮助(链接和子页面)

javascript - Visual Studio 编辑器中的 JS 文件中的箭头是什么意思?

javascript - 如何将数组拆分为奇数数组和偶数数组

javascript - 如何将多个数组中的项目添加到另一个数组中?

javascript - 如何检查音频是否未加载?

Jquery - 选择器,由对象和字符串组成,可以吗?