如何防止部分HTML文本被复制时,复制相邻
How to prevent part of HTML text from being copied when copying adjacent?
我写了一个添加行号的JavaScript小部件,我不能弄清楚的一件事是在复制文本时防止数字被复制。我希望人们能够复制数字周围的序列,而不是数字本身。下面是脚本结果的一个示例:
基本上:
<span>useful stuff to be copied </span>
<span style="some-mysterious-setting: True;"> gloss to be discarded in selection </span>
<span> useful stuff to be copied</span>
数字是作为一个单独的span元素实现的,而不是作为一个表或任何花哨的东西。我在CSS中尝试了user-select: none;
及其变体,但这意味着它不会突出显示,但它仍然复制编号。
所以你不需要Javascript。
解决方案是使用伪元素,而不是在元素中实际放置数字。
<span class="line-number" data-line-number="1"></span>
CSS: .line-number::before {
content: attr(data-line-number);
}
td:nth-of-type(1) {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
td:nth-of-type(1)::before {
content: attr(data-line-number);
}
<table>
<tr>
<td data-line-number="1"></td>
<td>Test row</td>
</tr>
<tr>
<td data-line-number="2"></td>
<td>Test row</td>
</tr>
<tr>
<td data-line-number="3"></td>
<td>Test row</td>
</tr>
<tr>
<td data-line-number="4"></td>
<td>Test row</td>
</tr>
</table>
你也可以使用CSS counter
来得到你想要的结果,如果你有大量的数据,你不再需要指定行号
table
{
counter-reset: line;
counter-increment: line;
}
td:nth-of-type(1)::before {
counter-increment: line+10;
content: counter(line) " ";
}
td:nth-of-type(1)
{
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
HTML <table>
<tr>
<td></td>
<td>Row 1</td>
</tr>
<tr>
<td></td>
<td>Row 2</td>
</tr>
<tr>
<td></td>
<td>Row 3</td>
</tr>
<tr>
<td></td>
<td>Row 4</td>
</tr>
</table>
我想这应该可以工作:
Javascript:
var elem = document.getElementsByClassName("myElement");
elem.unselectable = "on";
Html: <span>useful stuff to be copied </span>
<span class="myElement"> gloss to be discarded in selection </span>
<span> useful stuff to be copied</span>
相关文章:
- 零剪贴板复制文本后切换页面
- 我的剧本赢了'不能在IE中工作(甚至9)?修改复制文本的简单javascript
- 如何在文本区域中复制文本的每一行
- 如何使用jquery复制文本区域中的每一行文本
- RequireJS:防止复制文本!内联后的文件
- 无法获取document.execCommand以正常复制文本
- 使用 javascript 或 flash 或其他任何东西从跨域 iframe 复制文本
- 如何通过imacros从弹出/对话框中复制文本并将其粘贴到字段中
- 如何使用户能够通过单击按钮从文本区域复制文本
- 如何在javascript中复制文本
- Safari 5.1.7 在 JSP 的文本区域中复制文本
- 如何在 JavaScript 中的 2 个符号[关键字] 之间复制文本
- 如何获取html元素运行时代码以生成通用副本?就像复制文本框中输入文本一样
- 如何创建一个弹出框,用户可以在其中复制文本
- HTML/JavaScript:如何从iframe中复制文本
- 使用html2canvas在svg中复制文本
- 从spotify应用程序复制文本
- 复制文本到剪贴板不工作
- Js上单击打开链接,然后复制文本,然后显示警告
- 用javascript从工具提示复制文本