使用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学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
动态的创建一个元素createElement及删除一个元素
Jan 24 Javascript
jquery+ajax验证不通过也提交表单问题处理
Dec 12 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
React 使用browserHistory项目访问404问题解决
Jun 01 Javascript
微信小程序中为什么使用var that=this
Aug 27 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
Ajax实现局部刷新的方法实例
Mar 31 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 转义使用详解
2013/07/15 PHP
试用php中oci8扩展
2015/06/18 PHP
php验证手机号码
2015/11/11 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
JQuery写动态树示例代码
2013/07/31 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
使用 jQuery 实现表单验证功能
2017/07/05 jQuery
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
JS写滑稽笑脸运动效果
2020/05/28 Javascript
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
师范生求职信
2014/06/14 职场文书
初中学习计划书范文
2014/09/15 职场文书
借钱欠条怎么写
2015/07/03 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
如何使用PyCharm及常用配置详解
2021/06/03 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
SQL Server中锁的用法
2022/05/20 SQL Server