使用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 相关文章推荐
JS鼠标滑过图片时切换图片实现思路
Sep 12 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
javascript如何实现暂停功能
Nov 06 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
vue+vux实现移动端文件上传样式
Jul 28 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
Apr 19 Javascript
vue使用监听实现全选反选功能
Jul 06 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
Three.JS实现三维场景
Dec 30 Javascript
js console.log打印对象时属性缺失的解决方法
May 23 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
vue使用vant中的checkbox实现全选功能
Nov 17 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
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
2016/05/20 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
微信公众平台 客服接口发消息的实现代码(Java接口开发)
2019/04/17 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
基于python编写的微博应用
2014/10/17 Python
python中异常捕获方法详解
2017/03/03 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
工商管理自荐书
2014/07/06 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
Python 中的 copy()和deepcopy()
2021/11/07 Python