Javascript iOS 11:将(非标准)文件拖放到Safari上

Javascript iOS 11:将(非标准)文件拖放到Safari上,javascript,ios,safari,drag-and-drop,Javascript,Ios,Safari,Drag And Drop,iOS 11支持在文件和Safari之间进行拖放,但显然仅适用于一组受限的“标准”文件类型,例如.txt、.png、.pdf、.docx、.doc 此问题在中提出,但未解决 考虑以下测试网页: <html> <head> <title>Drag and Drop test</title> </head> <body> <canvas id='x' width='90' height='90' style='border

iOS 11支持在文件和Safari之间进行拖放,但显然仅适用于一组受限的“标准”文件类型,例如.txt、.png、.pdf、.docx、.doc

此问题在中提出,但未解决

考虑以下测试网页:

<html>
<head>
<title>Drag and Drop test</title>
</head>
<body>
<canvas id='x' width='90' height='90' style='border: 1px solid red;'></canvas>
<script>
  document.getElementById('x').addEventListener('dragover', function(e){
      e.preventDefault();
  });
  document.getElementById('x').addEventListener('drop', function(e){
      var i, files;
      e.preventDefault();
      files = e.dataTransfer.files;
      for (i=0; i<files.length; i++) {
          console.log('%s [%s]', files[i].path || files[i].name, files[i]);
      }
  });
</script>
</body>
</html>

拖放试验
document.getElementById('x')。addEventListener('dragover',函数(e){
e、 预防默认值();
});
document.getElementById('x')。addEventListener('drop',函数(e){
var i,文件;
e、 预防默认值();
files=e.dataTransfer.files;
对于(i=0;i