使用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 相关文章推荐
学习ExtJS 访问容器对象
Oct 07 Javascript
this和执行上下文实现代码
Jul 01 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
jquery实现图片滚动效果的简单实例
Nov 23 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
Jun 30 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
Jan 07 Javascript
Vue+Flask实现图片传输功能
Apr 01 Vue.js
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日期处理函数 整型日期格式
2011/01/12 PHP
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
js TextArea的选中区域处理
2010/12/28 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
Python assert关键字原理及实例解析
2019/12/13 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
keras中的History对象用法
2020/06/19 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
机械专业技术员求职信
2014/06/14 职场文书
放飞理想演讲稿
2014/09/09 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
丽江古城导游词
2015/02/03 职场文书
免职通知
2015/04/23 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle