javascript - Javascript:长按文件对话框
问题描述
是否可以使用长按进行文件对话框?例如JavaScript 中的长按?有答案以触发长按事件。但是,这不能用于在大多数浏览器中触发文件输入点击,因为它不被视为用户激活。
var pressTimer;
$("a").mouseup(function(){
clearTimeout(pressTimer);
// Clear timeout
return false;
}).mousedown(function(){
// Set timeout
pressTimer = window.setTimeout(function()
{ fileChooser.click() // assume fileChoose is a file input element
// This is suppressed by most browsers.
},1000);
return false;
});
解决方案
当然有可能。您可能必须使用mousedown
andmouseup
事件开发自己的检测。计算 和 之间的时间mousedown
并mouseup
确定延迟是否足够长以引起其他操作。
https://jsfiddle.net/psc4yk76/2/
(function() {
const longtime = 500;
const target = document.getElementById('target');
const input = document.getElementById('input');
const button = document.getElementById('button');
var timedown = 0;
button.onmousedown = () => {
timedown = new Date().getTime();
};
button.onmouseup = () => {
let timeup = new Date().getTime();
let insert = document.createElement('div');
if( (timeup - timedown) < longtime ) {
insert.appendChild(document.createTextNode('Short!'));
} else {
insert.appendChild(document.createTextNode('Long!'));
input.click();
}
target.appendChild(insert);
}
})()
推荐阅读
- javascript - 使用图像之间的适当间距自定义 Slick 滑块设计
- wordpress - woocommerce_update_product 操作 – 每次产品更新仅触发一次
- reactjs - 如何使用带有突变和图像上传的异步功能反应js
- r - R为数据框列表创建一个循环
- django - Django查询没有输出正确的结果
- javascript - 如何在Javascript中动态使用子对象值查找父JSON对象值?
- lucene - 使用休眠搜索以单词开头或以单词结尾
- ios - Xcode 使用 Drawercontroller 未声明的类型错误
- javascript - 带有 setInterval 的幻灯片
- linux-kernel - 向我的 Linux 添加新的设备驱动程序及其对 initrd 的影响