使用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 相关文章推荐
jQuery 动画基础教程
Dec 25 Javascript
Javascript中自动切换焦点实现代码
Dec 15 Javascript
探寻Javascript执行效率问题
Nov 12 Javascript
jQuery中[attribute=value]选择器用法实例
Dec 31 Javascript
jQuery实现简单的间隔向上滚动效果
Mar 09 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
Jun 22 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
微信小程序实现抖音播放效果的实例代码
Apr 11 Javascript
react的hooks的用法详解
Oct 12 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
长波有什么东西
2021/03/01 无线电
php下载远程文件类(支持断点续传)
2008/11/14 PHP
如何判断php数组的维度
2013/06/10 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python多进程实现文件下载传输功能
2018/07/28 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python中数据库like模糊查询方式
2020/03/02 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
深入了解Python 变量作用域
2020/07/24 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
软件测试题目
2013/02/27 面试题
联谊活动策划书
2014/01/26 职场文书
房地产推广策划方案
2014/05/19 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书