使用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 创建对象
Jul 17 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
JavaScript实现页面5秒后自动跳转的方法
Apr 16 Javascript
探讨JavaScript语句的执行过程
Jan 28 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
在Vue中创建可重用的 Transition的方法
Jun 02 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数组中删除元素的实现代码
2012/06/22 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
python函数局部变量用法实例分析
2015/08/04 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Python切片操作实例分析
2018/03/16 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
python 连续不等式语法糖实例
2020/04/15 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
毕业自荐信
2013/12/16 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书