使用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 类、命名空间、代码组织代码
Jul 31 Javascript
javascript实现window.print()去除页眉页脚
Dec 30 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
Jun 01 Javascript
JavaScript重载函数实例剖析
May 13 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
Nov 29 Javascript
JavaScript两个变量交换值的实现方法
Mar 01 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
node.js实现带进度条的多文件上传
Mar 27 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
Jun 23 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实现利用MySQL保存session的方法
2014/08/23 PHP
php的4种常用运行方式详解
2016/12/22 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Python多进程写入同一文件的方法
2019/01/14 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
经理职责范文
2013/11/08 职场文书
大学生军训感想
2014/02/16 职场文书
个人授权委托书样本
2014/09/13 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
八年级作文之感恩
2019/11/22 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
Python中else的三种使用场景
2021/06/16 Python
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS