使用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 各浏览器的 Javascript 效率对比
Jan 23 Javascript
javascript定时保存表单数据的代码
Mar 17 Javascript
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 Javascript
JS函数本身的作用域实例分析
Mar 16 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php简单提示框alert封装函数
2010/08/08 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php常用图片处理类
2016/03/16 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
jquery实现文本框的禁用和启用
2016/12/07 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
Vue项目添加动态浏览器头部title的方法
2018/07/11 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
深入浅析python 中的匿名函数
2018/05/21 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
超市仓管员岗位职责
2014/04/07 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
幸福中国演讲稿
2014/09/12 职场文书
上班迟到检讨书
2014/09/15 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
单位更名证明
2015/06/18 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers