问题描述
我正在使用这个html5文件上传器插件,但它在 Google Chrome 上存在一个我无法理解和修复的错误。它在Firefox上正常工作。
问题是,您不能两次从您的桌面上传两次相同的文件。 点击,选择,然后点击确定从桌面上传一个文件,它会提示一个消息,比如'.button-1' - 取决于你点击了哪个上传按钮。 然后,如果您尝试再次上传相同的文件,这行代码将不会再执行, 任何想法这个插件出了什么问题?
(code $)$(。upload-file,object_parent).change(function(){
...
...
alert($ cm.selector);
});
(function($){
//将这个新方法附加到jQuery
$ .fn.extend({
//这是你写插件名称的地方
upload_file_html5:function(options){
//设置默认值,用逗号分隔这些设置,例如:
var defaults = {
objectSuperparent:'.media'
}
var options = $ .extend(defaults,options);
var o = options;
var $ cm = this.click(函数(e){
//< a>按钮是这种情况下的对象
var object = $(this);
//获取元素的其他信息属于这个对象组
var object_href = object.attr('href');
var object_parent = object.parent( );
alert($ cm.selector);
//触发元素上的click事件。
//由于安全策略触发,在某些浏览器中不允许/支持输入type = file,Opera是其中之一。
//$('input[type=file]').trigger('click'); //或:
$(。upload-file,object_parent).click();
返回false;
});
//当用户更改文件时触发ajax帖子。
var $ cm_2 = $(。upload-file)。change(function(){
//< input>是这种情况下的对象
var object = $(this);
var object_form = object.parent();
var object_superparent = object.parents(o.objectSuperparent);
var path_config = $($ cm.selector,object_superparent).attr('href');
var path_post = object_form.attr('action');
alert($ cm.selector);
// alert(path_config);
....
....
});
}
});
))(jQuery);它在Chrome上正常工作,但最近刚刚失败,可能Chrome已经将最新版本更新到了我的机器上并且这个更新导致了bug?
是的。我的Chrome与Firefox有不同的行为,但是我认为Chrome是正确的。
根据:
$ b
if you try to upload the same file, the value of file input does not change. Try to print it out:
$('.button-2').click(function(){
console.log($(".list .upload-file").val())
return false;
});
这篇关于Chrome文件上传错误:更改事件不会被同一个文件执行两次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!