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 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
javascript hashtable实现代码
Oct 13 Javascript
图像替换新技术 状态域方法
Jan 28 Javascript
用JQuery在网页中实现分隔条功能的代码
Aug 09 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
Sep 29 Javascript
node.js中的console.log方法使用说明
Dec 09 Javascript
javascript获取元素离文档各边距离的方法
Feb 13 Javascript
javascript继承的六大模式小结
Apr 13 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
Mar 02 Javascript
react系列从零开始_简单谈谈react
Jul 06 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 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
快速开发一个PHP扩展图文教程
2008/12/12 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
Python实现简单登录验证
2016/04/13 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
python使用selenium实现批量文件下载
2019/03/11 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python如何读写字节数据
2020/08/05 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
光声世纪笔试题目
2012/08/25 面试题
研修第一天随笔感言
2014/02/15 职场文书
幼儿园课题方案
2014/06/09 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
欢迎词范文
2015/01/27 职场文书
长城导游词
2015/01/30 职场文书
python实现局部图像放大
2021/11/17 Python