gpt4 book ai didi

javascript - ondrop 事件未触发

转载 作者:行者123 更新时间:2023-12-03 05:22:48 27 4
gpt4 key购买 nike

上下文:在网页上工作,以便能够将 csv 文件拖放到其上并将文件中的数据加载到 MySQL 服务器。在 Widnows 7 SP1 上运行,在 Apache 2.4 上运行,使用 Chrome 在本地主机上进行测试。

问题:尝试创建上传页面,但无法触发 ondrop 事件。我已经摆脱了我理解的默认行为,但仍然没有从实时网页得到任何响应。我也对 ondragenter 事件(未显示)执行了相同的操作,没有任何更改。处理方法是,文件通过浏览器下载到默认下载文件夹,这也是将文件拖放到页面其余部分时发生的情况(因此默认处理?)。我相信拖放 API 是大多数浏览器原生的,不需要任何包含的库。这是错误的吗?我缺少一些定义吗?

代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
#drop_zone {
background-color: #EEE;
border: #999 5px dashed;
width: 290px;
height: 200px;
padding: 8px;
font-size: 18px;
}
</style>
<script>
function drag_enter(event) {
document.getElementById("drop_zone").style.border = "5px dotted red";
function drag_drop(event) {
event.preventDefault();
alert(event.dataTransfer.files[0]);
alert(event.dataTransfer.files[0].name);
alert(event.dataTransfer.files[0].size+" bytes");

</script>
</head>
<body>

<h1>File Upload Drop Zone</h1>
<div id="drop_zone" ondragenter="drag_enter(event)" ondrop="drag_drop(event)" ondragover="return false"></div>

</body>
</html>

附加问题:有人可以解释一下 HTML 事件调用者传递给函数的参数(称为 event)代表什么吗?是那个特定的事件 ID 吗?您可以通过这个转介事件的发起人吗?不确定我是否理解调用者和函数之间关于此参数的关系。在线文档通常对它的用途进行解释。

感谢大家花时间查看我的问题。热烈的问候,

最佳答案

看起来您在每个函数的末尾缺少一些结束 } ,如下:

 function drag_enter(event) {
document.getElementById("drop_zone").style.border = "5px dotted red";
function drag_drop(event) {
event.preventDefault();
alert(event.dataTransfer.files[0]);
alert(event.dataTransfer.files[0].name);
alert(event.dataTransfer.files[0].size+" bytes");

应该是:

function drag_enter(event) {
document.getElementById("drop_zone").style.border = "5px dotted red";
}
function drag_drop(event) {
event.preventDefault();
alert(event.dataTransfer.files[0]);
alert(event.dataTransfer.files[0].name);
alert(event.dataTransfer.files[0].size + " bytes");
}

这是一个working example

关于javascript - ondrop 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41305534/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com