如何解决Javascript适用于Webkit,但不适用于FF
| 我正在使用jQuery和Andrew Valum的文件上传器来处理表单中的Ajax图片上传。理想的行为是当用户选择文件输入时,将文件立即上载到服务器。 html元素:<input type=\"file\" id=\"imgUpload\" />
js:
var uploader = new qq.FileUploaderBasic({
button: $(\'#imgUpload\')[0],//...
});
上面的方法适用于Chrome和Safari,但不适用于Firefox。 Firefox处理JS的方式是否有所不同?非常感谢。
编辑:尽管我不是JavaScript专家,但我认为Valum \的文件上传器用自己的元素替换了目标输入元素,然后将其附加了onchange侦听器以处理自定义ajax请求。这在Chrome浏览器中效果很好。但是,在Firefox中,该事件永远不会触发ajax请求。文件输入的行为就像在普通html表单中一样,并且需要提交表单。没有javascript错误或其他任何内容,所有其他脚本在所有浏览器中均可正常运行。
更新:仍在努力。事实证明ѭ2正在正确初始化,并且输入元素已成功发送\“ change \”事件。它只是不会像在Chrome中那样触发FF中的事件处理程序。
解决方法
原来,这是一个CSS问题,而不是Javascript问题。结果是文件上传脚本在目标输入元素内创建了一个新的“ 3”元素。这个新的目标输入元素具有所需的更改事件处理程序。
在Chrome中,点击原始输入会激活新的输入元素,从而触发所需的行为。问题是,在Firefox中,单击原始输入会以某种方式激活原始输入元素,而不是新元素。这是问题的原因。
因此,与Javascript相比,这更像是跨浏览器的CSS问题。我的下一步是弄清楚如何让Firefox选择正确的元素,但是目前希望这会帮助其他有相同问题的人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。