HTML5 draggable ='false'在Firefox浏览器中不起作用

San*_*eep 16 javascript html5 drag-and-drop draggable

我只是尝试将HTML5 draggable ='false'属性应用于某些图像,但它在Firefox浏览器中不起作用.在Chrome中工作正常但在Firefox上,选择了能够拖放的图像.示例代码可以在这里看到:

<div id="dnd">
    <textarea placeholder="drop here"></textarea>
    <img src="http://johnlewis.scene7.com/is/image/JohnLewis/231108668?$prod_main$" draggable='false'/>
</div>
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

我有Firefox最新版本:32.0.3

谷歌很多,但没有找到更好的解决方案.有没有使用JavaScript的解决方案?任何帮助,将不胜感激.

谢谢

小智 24

试试吧

add ondragstart ="return false;" 你的HTML元素

<div id="dnd">
    <textarea placeholder="drop here"></textarea>
    <img src="http://johnlewis.scene7.com/is/image/JohnLewis/231108668?$prod_main$" draggable='false' ondragstart="return false;"/>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 这不再起作用,请参阅詹姆斯·莫里森的答案。 (2认同)

Jam*_*son 7

更新种类,该解决方案不适用于React,但是添加以下内容即可。

onDragStart={(e) => { e.preventDefault() }}
Run Code Online (Sandbox Code Playgroud)

编辑:为ondragstart返回false不再适用于更现代的Firefox版本(信誉:Hooman Askari),在这种情况下,请使用以下代码。

function dragStart(e) {
    e.preventDefault()
}
Run Code Online (Sandbox Code Playgroud)

...以及元素

ondragstart="dragStart(e)"
Run Code Online (Sandbox Code Playgroud)


Sho*_*ate -2

您可以为图像设置以下 CSS 属性:

.unselectable {
    /* For Opera and <= IE9, we need to add unselectable="on" attribute onto each element */
    /* Check this site for more details: http://help.dottoro.com/lhwdpnva.php */
    -moz-user-select: none; /* These user-select properties are inheritable, used to prevent text selection */
    -webkit-user-select: none;
    -ms-user-select: none; /* From IE10 only */
    user-select: none; /* Not valid CSS yet, as of July 2012 */

    -webkit-user-drag: none; /* Prevents dragging of images/divs etc */
    user-drag: none;
}
Run Code Online (Sandbox Code Playgroud)

HTML 代码:

<img src="something.jpg" class="unselectable">
Run Code Online (Sandbox Code Playgroud)

小提琴