使用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 相关文章推荐
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
Apr 26 Javascript
jquery中常用的函数和属性详细解析
Mar 07 Javascript
js实现使用鼠标拖拽切换图片的方法
May 04 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
深入浅析JavaScript中的scrollTop
Jul 11 Javascript
微信小程序 slider的简单实例
Apr 19 Javascript
AngularJS入门教程一:路由用法初探
May 27 Javascript
微信小程序 本地图片按照屏幕尺寸处理
Aug 04 Javascript
nginx+vue.js实现前后端分离的示例代码
Feb 12 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
Jan 08 Javascript
原生js实现滑块区间组件
Jan 20 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
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
JavaScript类型系统之基本数据类型与包装类型
2016/01/06 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
Cpy和Python的效率对比
2015/03/20 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
python requests.post带head和body的实例
2019/01/02 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
python多线程http压力测试脚本
2019/06/25 Python
详解python statistics模块及函数用法
2019/10/27 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python Tornado框架的使用示例
2020/10/19 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
员工年终演讲稿
2014/01/03 职场文书
公司请假条格式
2014/04/11 职场文书
中秋手机店促销方案
2014/06/16 职场文书
会计学专业自荐信
2014/06/25 职场文书
财务人员入职担保书
2015/09/22 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python