使用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 相关文章推荐
JS和函数式语言的三特性
Mar 05 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
ES6入门教程之Class和Module详解
May 17 Javascript
vue登录注册及token验证实现代码
Dec 14 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
May 23 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
javascript json对象小技巧之键名作为变量用法分析
Nov 11 Javascript
如何利用vue实现波谱拟合详解
Nov 05 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 操作excel文件的方法小结
2009/12/31 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
浅谈js中的this问题
2017/08/31 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
python基础教程之常用运算符
2014/08/29 Python
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
pytorch permute维度转换方法
2018/12/14 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
python 一维二维插值实例
2020/04/22 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
2014年教师党员自我评价范文
2014/09/22 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS