window.open()实现post传递参数


Posted in Javascript onMarch 12, 2015

在实际项目中,常常遇到这样的需求,即实现子系统页面之间跳转并在新的页面打开,我所在项目组使用的是SSH框架,所以url均为类似****.action,同时还带有两参数(系统ID与系统名称),两个参数被struts拦截后存入session中,在打开的子系统页面中还有个ztree插件实现的树状菜单需要参数系统ID才能初始化,直接使用window.open(url,"_blank"),会使得url长度过长,同时还暴露一些参数。故想改用post方式提交,隐藏提交过程中参数的传递。首先想到ajax提交,但是两个参数的传递会存在问题,ajax提交与window.open()会使得action走两遍,因此舍去。后又重新认真看了window.open()的API,链接地址http://www.w3school.com.cn/jsref/met_win_open.asp。window.open()默认是get提交方式,想要实现post提交方式,还得另想它法。参考https://3water.com/article/32826.htm,这里介绍了一种方法。也是常被采用的方法。我根据实际情况略作修改:

function openPostWindow(url, name, data1, data2){

    var tempForm = document.createElement("form");

    tempForm.id = "tempForm1";

    tempForm.method = "post";

    tempForm.action = url;

    tempForm.target=name;

    var hideInput1 = document.createElement("input");

    hideInput1.type = "hidden";

    hideInput1.name="xtid";

    hideInput1.value = data1;

    var hideInput2 = document.createElement("input");

    hideInput2.type = "hidden";

    hideInput2.name="xtmc";

    hideInput2.value = data2;

    tempForm.appendChild(hideInput1);

    tempForm.appendChild(hideInput2);

    if(document.all){

        tempForm.attachEvent("onsubmit",function(){});        //IE

    }else{

        var subObj = tempForm.addEventListener("submit",function(){},false);    //firefox

    }

    document.body.appendChild(tempForm);

    if(document.all){

        tempForm.fireEvent("onsubmit");

    }else{

        tempForm.dispatchEvent(new Event("submit"));

    }

    tempForm.submit();

    document.body.removeChild(tempForm);

}

//function openWindow(name){

//    window.open("",name);

//}

 openPostWindow()函数中的参数个数根据实际需要自行修改。data1与data2为action需要传递的参数。此外,此处还需考虑Javascript事件浏览器兼容问题。我这里注释了function openWindow(),不然会多打开一个空白页面(about:blank)。这样基本满足需求了。

以上就是本文分享的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
js实现的网站首页随机公告随机公告
Mar 14 Javascript
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
Apr 12 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
判断浏览器的javascript版本的代码
Sep 03 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
仿JQuery输写高效JSLite代码的一些技巧
Jan 13 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
微信小程序 wxapp内容组件 text详细介绍
Oct 31 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
BootStrap实现文件上传并带有进度条效果
Sep 11 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
Sep 23 Javascript
js运动动画的八个知识点
Mar 12 #Javascript
js实现最短的XML格式化工具实例
Mar 12 #Javascript
微信中一些常用的js方法汇总
Mar 12 #Javascript
javascript实现checkBox的全选,反选与赋值
Mar 12 #Javascript
jQuery通过扩展实现抖动效果的方法
Mar 11 #Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 #Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 #Javascript
You might like
无限级别菜单的实现
2006/10/09 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
popdiv
2006/07/14 Javascript
删除重复数据的算法
2006/11/23 Javascript
类似CSDN图片切换效果脚本
2009/09/17 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python中datetime常用时间处理方法
2015/06/15 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
python计算无向图节点度的实例代码
2019/11/22 Python
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
部门年终奖分配方案
2014/05/07 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
推普周活动总结
2014/08/28 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript
一级电子管军用接收机测评
2022/04/05 无线电