使用jquery实现以post打开新窗口 |
本文标签:post,新窗口 网络上已有此功能的函数,是以纯JS实现 。但是在项目中发现,此函数无法兼容Firefox,由此我重写了此方法. 复制代码 代码如下: //默认新窗口配置 var windowDefaultConfig = new Object; windowDefaultConfig[directories] = no; windowDefaultConfig[location] = no; windowDefaultConfig[menubar] = no; windowDefaultConfig[resizable] = yes; windowDefaultConfig[scrollbars] = yes; windowDefaultConfig[status] = no; windowDefaultConfig[toolbar] = no; 复制代码 代码如下: /** * 以POST表单方式打开新窗口的JQUERY实现 @param:url 需要打开的URL @param:args URL的参数,数据类型为object @param:name 打开URL窗口的名字,如果同一按钮需要重复地打开新窗口, 而不是在第一次打开的窗口做刷新,此参数应每次不同 @param:windowParam 新打开窗口的参数配置 * @author: haijiang.mo */ function jQueryOpenPostWindow(url,args,name,windowParam){ //创建表单对象 var _form = $("<form></form>",{ id:tempForm, method:post, action:url, target:name, style:display:none }).appendTo($("body")); //将隐藏域加入表单 for(var i in args){ _form.append($("<input>",{type:hidden,name:i,value:args[i]})); } //克隆窗口参数对象 var windowConfig = clone(windowDefaultConfig); //配置窗口 for(var i in windowParam){ windowConfig[i] = windowParam[i]; } //窗口配置字符串 var windowConfigStr = ""; for(var i in windowConfig){ windowConfigStr += i+"="+windowConfig[i]+","; } //绑定提交触发事件 _form.bind(submit,function(){ window.open("about:blank",name,windowConfigStr); }); //触发提交事件 _form.trigger("submit"); //表单删除 _form.remove(); } 记录下来,以后可以用 。 |