使用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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
JS取得绝对路径的实现代码
Jan 16 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
AngularJS教程之MVC体系结构详解
Aug 16 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
vue中的watch监听数据变化及watch中各属性的详解
Sep 11 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
js实现多个倒计时并行 js拼团倒计时
Feb 25 Javascript
javascript实现切割轮播效果
Nov 28 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 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查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
2019/01/22 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python time模块用法实例详解
2014/09/11 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
2014年技术部工作总结
2014/12/12 职场文书
具结保证书
2015/01/17 职场文书
婚宴父亲致辞
2015/07/27 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
MongoDB数据库之添删改查
2022/04/26 MongoDB
nginx rewrite功能使用场景分析
2022/05/30 Servers
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS