在焦点离开浏览器之前,较旧的操作系统和“DragOver”事件不会触发

时间:2012-01-09 19:12:58

标签: jquery html5 javascript-events drag-and-drop windows-xp

洞察力

我正在将HTML5拖放文件上传支持添加到我为div设置样式的网站,以通知用户当文件被拖入某个容器时,他们可以将文件拖放到那里。这很好,在家工作很漂亮,今天早上我上班,突然之间没有同样的工作方式。

问题

在1)之前,Javascript事件dragover似乎在较旧的操作系统中不会触发。)您可以在文件原始位置或页面上释放鼠标按钮;或者2.)在浏览器外面鼠标/拖动时。

我创建了这个展示问题的jsFiddle演示:http://jsfiddle.net/q4Evq/

我家里的电脑正在运行Windows 7并且上面的演示工作正常,只要你在div上拖动文件/任何东西,背景就会立即变为红色。在运行Windows XP的计算机上,在我从div和浏览器窗口之外拖出之前,背景不会变为红色。

这似乎不依赖于浏览器,因为我尝试了Windows XP计算机上的IE8,Firefox 9,Chrome 17以及Windows 7计算机上的IE9,Firefox 9和Chrome 16,结果是相同的其中它适用于7但不适用于XP。

我的问题是,这个问题只影响了我和我现在的计算机或者每个人都运行Windows XP?它在Vista中有用吗?我的JavaScript或其他方式是否有任何问题可以使这项功能起作用?

1 个答案:

答案 0 :(得分:0)

得到同样的问题,让我真的很生气。 我用javascript编写了一个html文件,这是一个简单的图形突出显示在div上的dragover事件。

在我的2台电脑上都运行良好,包括Win XP SP3和完全打补丁。 前几天,我必须改变一些事情,不要问什么。 也许我没吃午饭。 从那时起,我得到了你在一台电脑上描述的完全相同的停电停电。

我在生病的数字仆人身上发现了一件事: 如果拖动在浏览器内部启动,则dragover事件会触发,就像没有发生任何事情一样。 示例:http://help.dottoro.com/external/examples/ljrkqflw/ondragover_1.htm

我想到了从桌面到浏览器或双屏问题的委托问题。我处理了DCOMCnfg并创建了一个“交互式”COM安全访问,但它没有帮助。 其他的事情是sigverif关注驱动程序或IE7的不完全删除,但我相信10天前一切顺利,所以忘记这样一个月的问题。 有一种潜在的怀疑,表现出来是错误的,但Procmon和任务管理员没有表现出异常。我甚至尝试过FF10测试版,现在我真的很累。 如果我像实验室老鼠一样进行测试,我会无意中杀死我的操作系统。

愿我们的俱乐部尽可能快地成长,否则可能需要一段时间来解决这个问题。 我希望有人有经验,不久就会笑,并提示一下。