使用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 控制弹出窗口
Apr 10 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
Jul 26 Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 Javascript
js获取form的方法
May 06 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
angular2 ng2 @input和@output理解及示例
Oct 10 Javascript
ES6 系列之 WeakMap的使用示例
Aug 06 Javascript
详解vue中使用protobuf踩坑记
May 07 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
javascript 代码是如何被压缩的示例代码
May 06 Javascript
Ajax常用封装库——Axios的使用
May 08 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
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP下MAIL的另一解决方案
2006/10/09 PHP
为查询结果建立向后/向前按钮
2006/10/09 PHP
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
python中scikit-learn机器代码实例
2018/08/05 Python
Django CBV类的用法详解
2019/07/26 Python
python sitk.show()与imageJ结合使用常见的问题
2020/04/20 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
爱耳日宣传活动总结
2014/07/05 职场文书
国企干部对照检查材料
2014/08/22 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技