使用jquery实现以post打开新窗口


Posted in Javascript onMarch 19, 2014

网络上已有此功能的函数,是以纯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(); 
}

记录下来,以后可以用。
Javascript 相关文章推荐
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
DOM_window对象属性之--clipboardData对象操作代码
Feb 03 Javascript
JavaScript常用对象的方法和属性小结
Jan 24 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
node.js实现逐行读取文件内容的代码
Jun 27 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
微信小程序使用前置摄像头拍照
Oct 22 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 #Javascript
改变隐藏的input中value值的方法
Mar 19 #Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 #Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 #Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 #Javascript
javascript + jquery实现定时修改文章标题
Mar 19 #Javascript
深入理解Javascript里的依赖注入
Mar 19 #Javascript
You might like
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP实现简易计算器功能
2020/08/28 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
javascript 文件的同步加载与异步加载实现原理
2012/12/13 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
js图片处理示例代码
2014/05/12 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Django model select的多种用法详解
2019/07/16 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
数控专业毕业生自荐信范文
2014/03/04 职场文书
项目建议书模板
2014/05/12 职场文书
2014年保管员工作总结
2014/11/18 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书