我正在使用一个 jquery 插件,它用 div 替换表单的文件输入,因此当您单击 div 时,文件浏览器会弹出。当您选择一个文件时,表单会自动提交,结果会进入隐藏的 iframe。所有这一切背后的想法是,您可以只拥有一张图片,上面写着“点击上传”,然后单击一个文件浏览器,当您选择文件时,它会在后台上传。
无论如何,我知道文件提交时我的 php 中发生了问题,但是由于结果被加载到隐藏的 iframe 中,我看不到错误是什么!
所以显然从iframe中删除了隐藏样式,但问题是插件在插件的javascript中添加了display:hidden。它确实:
var iframe = $(
'<iframe '+
'id="iframe'+id+'" '+
'name="iframe'+id+'"'+
'></iframe>'
).css({
display: 'none'
});
但是,如果我删除:
.css({
display: 'none'
});
位,然后整个事情似乎中断了,用“点击上传”点击图像不再打开文件浏览器。
插件 javascript 不长,但可能太长无法在此处发布,但您可以在此处查看:http: //liquidlizard.net/jquery.ocupload.js如果有人可以帮助我,那就太好了!
为什么只删除那个 css() 函数会阻止整个工作?还有其他方法可以查看隐藏 iframe 的内容吗?
编辑 这是评论中建议的jsfiddle。http://jsfiddle.net/VF6Qb/ 如果删除 .css({display:'none'}); 则从第 35 行开始的 javascript 中 然后单击 div 将不再打开文件浏览器对话框