我正在使用CKEditor將一些文件拖到編輯器上。爲什麼instanceof在Chrome,Safari和Edge上返回false,在FireFox上是否爲true?
我在drop事件中看到了這種奇怪的行爲。在檢查事件對象時,我可以使用files
屬性。調試器顯示此類型爲FileList
。但是,當我做files instanceof FileList
時,我在Chrome,Safari和Edge中獲得false
,在FireFox中獲得true
(請參閱this fiddle)。
這是怎麼回事?
似乎它必須與CKEditor如何路由事件有關,因爲如果沒有CKEditor,它看起來確實有效。這是一個basic file drag-drop jsfiddle我叉,以便它打印instanceof FileList
。
我正在通過做Object.prototype.toString.call(files) == "[object FileList]"
來解決這個問題。但這似乎不是一個好的長期解決方案。
編輯:我對鉻公佈a bug report,因爲我覺得這是一件在Chrome中包含的回答這個問題,這是錯誤的