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 相关文章推荐
javascript或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
Mar 28 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
Mar 20 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
May 09 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
js窗口震动小程序分享
Nov 28 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
JavaScript 几种循环方式以及模块化的总结
Sep 03 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
vue3不同环境下实现配置代理
May 25 Vue.js
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
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
Vue中CSS动画原理的实现
2019/02/13 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
详解Python pygame安装过程笔记
2017/06/05 Python
Python定时器实例代码
2017/11/01 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
详解Python用户登录接口的方法
2019/04/17 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
浅析python实现动态规划背包问题
2020/12/31 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
应聘医药代表职位求职信
2013/10/21 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书