在整个项目 HTML 页中禁止拖动图像
Disable dragging of image in entire project HTML pages
我想禁用拖动我的项目中的所有图像,它有大量图像。我在网上找到的结果是禁用特定图像。将 draggable="false"
放入每个图像标签中会花费很多时间。所以我想要一个解决方案来一起禁用它们。
我使用这段代码成功地禁用了拖动,但它在 Firefox 中仍然可以拖动。
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
我已经完成 Disable dragging an image from an HTML page 但没有找到我的问题的答案。
对于特定的图像,您可以这样做,它适用于所有 browsers
<!-- right image (dragging disabled) -->
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png" onmousedown="if (event.preventDefault) event.preventDefault()">
如果您希望所有图片在所有浏览器中都不可拖动,包括 firefox
,那么几行 javascript 可以为您做到这一点!
// register onLoad event with anonymous function
window.onload = function(e) {
var evt = e || window.event, // define event (cross browser)
imgs, // images collection
i; // used in local loop
// if preventDefault exists, then define onmousedown event handlers
if (evt.preventDefault) {
// collect all images on the page
imgs = document.getElementsByTagName('img');
// loop through fetched images
for (i = 0; i < imgs.length; i++) {
// and define onmousedown event handler
imgs[i].onmousedown = disableDragging;
}
}
};
// disable image dragging
function disableDragging(e) {
e.preventDefault();
}
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
您可以将 ondragstart
属性添加到单个图像 & return false
。
如果你想处理多张图片
const imgs = document.getElementsByTagName('img');
for(let i = 0; i < imgs.length; i++ ) {
imgs[i].setAttribute("ondragstart", "return false")
}
来自 React 的注释 Synthetic events
As of v0.14, returning false from an event handler will no longer stop event propagation. Instead, e.stopPropagation() or e.preventDefault() should be triggered manually, as appropriate.
所以你需要添加到每个图像。
<img src={source} onDragStart={e => e.preventDefault()} />
我想禁用拖动我的项目中的所有图像,它有大量图像。我在网上找到的结果是禁用特定图像。将 draggable="false"
放入每个图像标签中会花费很多时间。所以我想要一个解决方案来一起禁用它们。
我使用这段代码成功地禁用了拖动,但它在 Firefox 中仍然可以拖动。
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
我已经完成 Disable dragging an image from an HTML page 但没有找到我的问题的答案。
对于特定的图像,您可以这样做,它适用于所有 browsers
<!-- right image (dragging disabled) -->
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png" onmousedown="if (event.preventDefault) event.preventDefault()">
如果您希望所有图片在所有浏览器中都不可拖动,包括 firefox
,那么几行 javascript 可以为您做到这一点!
// register onLoad event with anonymous function
window.onload = function(e) {
var evt = e || window.event, // define event (cross browser)
imgs, // images collection
i; // used in local loop
// if preventDefault exists, then define onmousedown event handlers
if (evt.preventDefault) {
// collect all images on the page
imgs = document.getElementsByTagName('img');
// loop through fetched images
for (i = 0; i < imgs.length; i++) {
// and define onmousedown event handler
imgs[i].onmousedown = disableDragging;
}
}
};
// disable image dragging
function disableDragging(e) {
e.preventDefault();
}
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
<img src="https://contribute.geeksforgeeks.org/wp-content/uploads/gfg-39.png">
您可以将 ondragstart
属性添加到单个图像 & return false
。
如果你想处理多张图片
const imgs = document.getElementsByTagName('img');
for(let i = 0; i < imgs.length; i++ ) {
imgs[i].setAttribute("ondragstart", "return false")
}
来自 React 的注释 Synthetic events
As of v0.14, returning false from an event handler will no longer stop event propagation. Instead, e.stopPropagation() or e.preventDefault() should be triggered manually, as appropriate.
所以你需要添加到每个图像。
<img src={source} onDragStart={e => e.preventDefault()} />