Microsoft Edge 中保留的 dragDrop javascript 函数名称?
dragDrop javascript function name reserved in Microsoft Edge?
为什么我在 Microsoft Edge 中使用 dragDrop
事件函数名称不起作用?
示例:
<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
}
</style>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function dragDrop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<p>Drag the W3Schools image into the rectangle:</p>
<div id="div1" ondrop="dragDrop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
</body>
</html>
在内联事件处理程序中,元素的 DOM 对象在作用域链中。
Edge 中的元素有一个 dragDrop()
方法,因此您正在调用它。
这就是为什么您不应该使用内联事件处理程序的原因。
为什么我在 Microsoft Edge 中使用 dragDrop
事件函数名称不起作用?
示例:
<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {
width: 350px;
height: 70px;
padding: 10px;
border: 1px solid #aaaaaa;
}
</style>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function dragDrop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<p>Drag the W3Schools image into the rectangle:</p>
<div id="div1" ondrop="dragDrop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">
</body>
</html>
在内联事件处理程序中,元素的 DOM 对象在作用域链中。
Edge 中的元素有一个 dragDrop()
方法,因此您正在调用它。
这就是为什么您不应该使用内联事件处理程序的原因。