在我毕设项目中有个需求是在Bootstrap模糊框中显示WebUploader的上传按钮,效果如下:
我们直接在Bootstrap的模糊框中插入了上传的组件:
然而实际效果却是当模糊框出现之后,却无法点击到上传按钮。
然而在我按F12想要查看控制台是否出错后,WebUploader居然可以弹出文件选择框,而且其他功能也都正常了。
经过查阅资料发现:出现Bug的原因是[选择文件]按钮的长宽都是0,需要重新渲染一下网页,而F12正好有渲染网页的功能,解决方案就是重新渲染或实例化Uploader。需要重新实例化:uploader.refresh()
第一想法就是就是给模糊框的按钮注册点击事件,点击弹出模糊框的时候进行uploader.refresh();然而我在我进行修改之后貌似有其他BUG。
最后的解决办法就是监听模糊框触发显示的事件,然后刷新组件:
$('#updateModal').on('shown.bs.modal',function() {//提示框显示时候触发
uploader.refresh(); //刷新当前webUploder
});
最后感谢以下资料的帮助:
Bootstrap模态框使用WebUploader点击失效问题解决
bootstrap下modal模态框中webuploader控件按钮异常(无法点击)问题解决办法【转】
WebUploader初始化时的缺陷及处理方法
WebUploader单击选择文件按钮无效
WebUploader 选择图片按钮点击无效问题