我的任务是在弹出的子菜单面板中实现文件上传表单。我正在使用 XmlHttpRequest,因此在收到文件加载完成/失败的事件状态之前,保持该弹出窗口打开很重要。Onmouseover
和onmouseout
事件用于显示/隐藏弹出窗口。在“隐藏”时,弹出面板与 DOM 分离,不能再用作 XHR 事件的侦听器。
当我单击表单的“浏览”按钮时,会在浏览器上方打开一个系统对话窗口。在 Windows 中的 IE、Chrome 和 Firefox 中,系统对话框禁用按页面处理的事件。这意味着如果您将鼠标光标移出页面元素之一的对话框窗口,该页面将不会执行任何操作,例如对mouseOver
/mouseOut
事件做出反应。不幸的是,如果在 Mac 上使用 Chrome/Firefox(Safari 可以),页面元素会在鼠标悬停/移出时做出反应。我的弹出菜单关闭(由于mouseOut
弹出的事件处理程序)-> XHR 响应未正确管理。
假设必须在弹出窗口中有一个上传表单,那么在系统上传文件对话框窗口打开时保持该面板/表单可见的可能方法是什么?可能是 Mac 特定的解决方案。
示例代码可以在这里看到http://jsfiddle.net/xqvXG/