使用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实现分割提取页面所需内容
May 09 Javascript
js获取url中指定参数值的示例代码
Dec 14 Javascript
JS绘制生成花瓣效果的方法
Aug 05 Javascript
JS实现简单的二维矩阵乘积运算
Jan 26 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
Jan 25 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
微信小程序实现底部导航
Nov 05 Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 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来改写404错误页让你的页面更友好
2013/01/24 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
JavaScript字符串对象
2017/01/14 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python递归函数特点及原理解析
2020/03/04 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
linux下进程间通信的方式
2014/12/23 面试题
为什么需要版本控制
2016/10/28 面试题
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
医院办公室主任职责
2013/12/29 职场文书
土建资料员岗位职责
2014/01/04 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
学生检讨书怎么写
2014/10/09 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
python数据处理之Pandas类型转换
2022/04/28 Python