09月30, 2014

用jQuery创建iframe中name的坑

尼玛上次做Upload.js的时候就发现了,由于没有记笔记导致今天还在这个问题上辗转了15分钟。。。妈蛋。。。

起因是用iframe+form来做上传功能,创建一个form>input来插入到body里,(ps:最好别插在你上传按钮dom的旁边,因为可能会出现form里套form,然后。。。),让input[type=file]的元素超大点,然后让form的width,heigth于你上传按钮的一致,然后定位吧少年。。。

再创建个iframe。。。

那么坑来了。。。

因为页面可能有多个这样的实例,你需要用guid来给每个实例打个标识,因为现在需要在提交form的时候提交到iframe里,从而模拟伟大的ajax... 那么form上的target要跟iframe的name相同。。。不要问为什么。。。本来是这么创建的:

$iframe = $('<iframe />').attr({
 id: key +'_iframe',
 name: key
}).appendTo($body);

但发现在IE7中无效,给我生成的name居然不叫name了。。。

然后这样在提交的时候老是新窗口打开。。。于是要改创建iframe的代码。。。

$iframe = $('<iframe id="'+ key +'_iframe" name="'+ key +'" class="ui-upload-iframe"></iframe>').appendTo($body);

然后bug解决。。。

这样用户点的时候就等于直接点的input[type=file]。。。然后你自己绑定嫦娥(change)的时候提交到iframe里... 然后自己解析iframe里的contents().body()搞定...

本文链接:https://xuexb.com/post/236.html

-- EOF --

发表于 2014年09月30日 16:36:04 ,添加在分类 前端技术 下 ,并被添加「 jquery iframe 」标签 ,最后修改于 2017年04月19日 01:07:41

提醒: 本文最后更新于 3189 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。

AltStyle によって変換されたページ (->オリジナル) /