如何检测浏览器支持文件API拖动下拉

编程入门 行业动态 更新时间:2024-10-27 13:31:18
本文介绍了如何检测浏览器支持文件API拖动下拉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我喜欢在div上添加一个背景,仅用于支持拖放功能的浏览器。下载文件

我不喜欢使用modernizr,只是一行脚本

解决方案

为什么不从Modernizr复制所需的部件?

var isEventSupported =(function(){ var TAGNAMES = {'select':'input','change':'input','submit':'form','reset' ,'error':'img','load':'img','abort':'img'}; 函数isEventSupported(eventName,element){ element = element || document.createElement(TAGNAMES [eventName] ||'div'); eventName ='on'+ eventName; //当使用setAttribute时,IE跳过卸载,WebKit跳过卸载和调整大小,而incatch这些 var isSupported =元素中的eventName; if (!isSupported){ //如果没有`setAtt ribute(即不实现Node接口),尝试通用元素 if(!element.setAttribute){ element = document.createElement('div'); } if(element.setAttribute&& element.removeAttribute){ element.setAttribute(eventName,''); isSupported = typeof element [eventName] =='function'; //如果属性被创建,删除它(通过将值设置为'undefined`) if(typeof element [eventName]!='undefined'){ element [eventName] = undefined; } element.removeAttribute(eventName); } } 元素= null; return isSupported; } return isEventSupported; })();

用法:

code> if(isEventSupported('dragstart')&& isEventSupported('drop')){ ... } pre>

对于文件API:

var isFileAPIEnabled = function ){ return !! window.FileReader; };

I like to add a background on a div only for browsers which support drag & drop for files

I don't like to use modernizr though, just a one line script

解决方案

Why not just copy required parts from Modernizr?

var isEventSupported = (function() { var TAGNAMES = { 'select': 'input', 'change': 'input', 'submit': 'form', 'reset': 'form', 'error': 'img', 'load': 'img', 'abort': 'img' }; function isEventSupported( eventName, element ) { element = element || document.createElement(TAGNAMES[eventName] || 'div'); eventName = 'on' + eventName; // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those var isSupported = eventName in element; if ( !isSupported ) { // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element if ( !element.setAttribute ) { element = document.createElement('div'); } if ( element.setAttribute && element.removeAttribute ) { element.setAttribute(eventName, ''); isSupported = typeof element[eventName] == 'function'; // If property was created, "remove it" (by setting value to `undefined`) if ( typeof element[eventName] != 'undefined' ) { element[eventName] = undefined; } element.removeAttribute(eventName); } } element = null; return isSupported; } return isEventSupported; })();

Usage:

if (isEventSupported('dragstart') && isEventSupported('drop')) { ... }

And for File API:

var isFileAPIEnabled = function() { return !!window.FileReader; };

更多推荐

如何检测浏览器支持文件API拖动下拉

本文发布于:2023-08-02 18:59:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1280291.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:拖动   浏览器   文件   API

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!