使用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 相关文章推荐
不能再简单的无闪刷新验证码原理很简单
Nov 05 Javascript
jquery 多行滚动代码(附详细解释)
Jun 17 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
Nov 16 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
JS加密插件CryptoJS实现AES加密操作示例
Aug 16 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
深入php多态的实现详解
2013/06/09 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
vue实现信息管理系统
2020/05/30 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中的日期时间处理详解
2016/11/17 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
ORACLE第二个十问
2013/12/14 面试题
自荐信如何“自荐”
2013/10/24 职场文书
业务代表的岗位职责
2013/11/16 职场文书
小学毕业家长寄语
2014/01/19 职场文书
火箭队口号
2014/06/18 职场文书
欢迎领导检查标语
2014/06/27 职场文书
2014年党小组工作总结
2014/12/20 职场文书
校园之声广播稿
2015/08/18 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python