是否可以防止在网页上选择图像?

Posted

技术标签:

【中文标题】是否可以防止在网页上选择图像?【英文标题】:Is it possible to prevent an image from being selected on a web page? 【发布时间】:2014-12-03 05:25:24 【问题描述】:

我有一个显示表格的网站。表头包含文本描述和问号图像(用户可以将鼠标悬停在图像上以获得一些帮助)。

但我有一个请求,允许用户突出显示表格并在没有图像的情况下复制它(通过单击和拖动)。

这可能吗?我在这里尝试了建议

Preventing an image from being draggable or selectable without using JS

没有运气。

我可以将图像标记为“禁止复制”或“禁止选择”吗?

【问题讨论】:

@azrael 您可能需要考虑阅读整个问题而不仅仅是标题。然后你就会知道图像保护与 OP 无关。 使用固定大小的divbackground-image 指向您的图像的css 属性代替img 标签。 【参考方案1】:

防止使用 CSS 选择图像

img 
  user-select: none !important;
  -webkit-user-drag: none;

【讨论】:

【参考方案2】:

使用div 元素并使用background-image 属性将背景图像设置为div 元素的问号。

div 元素不包含任何文本,因此无法选择。

只是为了澄清:

<thead>
  <tr>
    <th>header1</th>
    <th>header2 <div class="question-mark"></div></th>
  </tr>
</thead>


.question-mark
    height: 100%;
    width: 10px;
    background-image: url("question_mark.png");
    background-repeat: no-repeat;
    background-size: contain;
    display: inline-block;

【讨论】:

谢谢 - 效果非常好。我还添加了 display: inline-block;到 .question-mark 以防止 div 换行到表头中的新行。 对不起,我遗漏了它,请随时编辑答案以改进。【参考方案3】:

正如其他用户所建议的,您可以将 div 用作图像。

但是,如果您希望将图像保留为图像,则可以使用

var img = document.querySelector("#notToDragImg");
img.onselectstart = function()
                    return false;
                ;

防止选择您的图像(并且不需要 jQuery)

【讨论】:

以上是关于是否可以防止在网页上选择图像?的主要内容,如果未能解决你的问题,请参考以下文章

在iOS上选择图层中的元素后如何防止缩放?

在三星 Galaxy 设备上选择图像会旋转

Android 在 OS 2.3 上选择和裁剪图像

是否可以在 iOS 13 上选择退出暗模式?

WPF:防止在 Shift + 箭头上选择 ListViewItem

是否在表格视图单元格上选择没有响应