IE6提交表单到动态添加的iframe

最近做无刷新上传,传统方法是提交到隐藏的iframe里然后回调
不希望所有上传的页面都预设iframe,于是采用动态创建的方式(无视掉里面的jQuery吧):

1
2
3
4
var $target = $(document.createElement('IFRAME')).hide();
$target.attr('id', target).attr('name', target);
$('body').append($target);

结果IE6下总是提交到一个新窗口
解决办法是不采用DOM操作,而是直接使用innerHTML:

1
2
// use html but not DOM, for IE6
$('body').append('<iframe id="' + target + '" name="' + target + '" style="display:none;"></iframe>');

参考文章:http://forums.digitalpoint.com/showthread.php?t=107314