微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript适用于Webkit,但不适用于FF

如何解决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 举报,一经查实,本站将立刻删除。