使用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 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
老鱼 浅谈javascript面向对象编程
Mar 04 Javascript
js实现兼容IE6与IE7的DIV高度
May 13 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
Jquery动态列功能完整实例
Aug 30 jQuery
vue中使用vue-pdf的方法详解
Sep 05 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
Map与WeakMap类型在JavaScript中的使用详解
Nov 18 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切割页面div内容的实现代码分享
2012/07/31 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
PHP实现微信对账单处理
2018/10/01 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
javascript 面向对象封装与继承
2014/11/27 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
Python入门篇之条件、循环
2014/10/17 Python
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
机电一体化毕业生求职信
2013/11/02 职场文书
化妆品店促销方案
2014/02/24 职场文书
绿色出行口号
2014/06/18 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android