防止在 Safari 和 Firefox 中选择和复制表格列?

Posted

技术标签:

【中文标题】防止在 Safari 和 Firefox 中选择和复制表格列?【英文标题】:Prevent table column from being selected and copied in Safari and Firefox? 【发布时间】:2010-11-14 13:23:37 【问题描述】:

我正在开发一个基本上是一个小实用程序的工具,它在一个有两列的表中显示一段源代码,一列用于行号,另一列用于实际源代码。

我发现您可以使用以下 CSS 阻止选择文本的外观:

table th 
    -moz-user-select: none;
    -webkit-user-select: none;

不幸的是,这不起作用。虽然文本显示为被选中,但如果你复制并粘贴它仍然会复制它。

那么实际上有办法做到这一点吗?

【问题讨论】:

【参考方案1】:

您的所有行号都应位于单个 tr 中的单个 td 中。如果您为每一行创建一个 tr,您将无法阻止行号的复制。

请参阅此页面的来源:http://pastie.org/561138 以获取示例。

【讨论】:

他试图在侧面显示行号,以便人们可以复制和粘贴代码而无需获取数字。阅读>理解>回答。 我认为很难分辨出询问者在寻找什么。 我可能会使用某种叠加层来防止突出显示,如果这是意图的话。【参考方案2】:

您是否尝试过将它们放在单独的 div 中并使其浮动?

我也刚刚找到this,使用jQuery 为您完成。你可以使用它,或者你可以把它拆开并弄清楚它是如何显示的,然后使用它。

【讨论】:

JS 应该作为此类事情的最后手段。不过提供选项仍然很好。 这就是为什么我建议使用它来获得所需的最终结果,并查看执行此类操作所需的代码。【参考方案3】:

选择的内容取决于 DOM 树中的顺序。因此,您需要将源代码显示放在显示行号的 html 之前或之后。将源代码和行号放在单独的 div 中并浮动元素可能是实现此目的的最简单方法。

【讨论】:

【参考方案4】:

您的问题的解决方案可以在这里找到:

Line numbering and copy/paste (HTML/CSS)

【讨论】:

以上是关于防止在 Safari 和 Firefox 中选择和复制表格列?的主要内容,如果未能解决你的问题,请参考以下文章

防止浏览器中的 iframe 缓存

如何防止在 Safari 移动浏览器上捏缩放(滚动)?

未在使用 Firefox 的选择列表中选择值(适用于 chrome、safari、opera)

在Firefox中拖动鼠标时如何防止文本选择?

处理 Firefox 扩展中的文本选择事件(防止用户选择文本)

CSS 动画在 chrome 中有效,但在 Firefox 和 Safari 中无效