我在网站上创建了一个表单,允许用户上传文件。用户还可以将文件拖放到此表单上。但是,在某些设备上,根本无法拖放files(例如在我的 iPhone 上)。因此,我只想仅在有意义的设备上显示文本“将文件拖放到此处”。
有没有办法原则上检测设备是否支持拖放文件?解决方法可能是检测鼠标指针是否正在移动。在这种情况下,我猜想可以拖放文件。然而,这只是一个猜测。
有没有更合适的方法来检测这个?请注意,我一般不想检测浏览器是否支持拖放,但是浏览器是否支持拖放files.
您可以使用 window.navigator.userAgent 来检测用户正在使用的操作系统。 userAgent 返回一个字符串,您可以解析该字符串以尝试检测其中的某些关键字。我看了这篇文章极客的极客 https://www.geeksforgeeks.org/detect-the-operating-system-of-user-using-javascript/。连同这个 stackoverflow 答案here https://stackoverflow.com/questions/9038625/detect-if-device-is-ios#:%7E:text=It%27s%20probably%20worth%20answering%20that%20iPads%20running%20iOS%2013%20will%20have%20navigator.。通过将两者结合起来,您应该能够挑选出某些关键字并检测大多数情况下用户正在使用的内容。似乎较旧的手机可能存在此问题,因此它可能并不完美。
if (navigator.appVersion.indexOf("Mac") != -1) {
onWeb = true;
}
if (navigator.appVersion.indexOf("Win") != -1) {
onWeb = true;
} else {
onWeb = false;
}
在我个人看来(请对此持保留态度),与旧设备上的潜在错误相比,这方面的工作量并不值得。因此,我会尝试使用文本来告知用户拖放的潜力,并为他们提供一个上传文件的按钮。一些用户更喜欢通过拖放(我自己)手动上传文件的功能,并且通过随时提供这两个选项,用户可以使用他们最喜欢的选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)