I'm Shendi;
目录
需求
有的时候我们的页面需要在新窗口中处理操作-比如支付页面
这时我们可以直接设置 a 标签的属性 target='_blank' 来在新窗口中打开
但是这样显得很不安全,并且只能为get请求
思路
有几种方法
- 我们可以在 js 中创建 a 标签来进行处理,但是只能是get请求
- 在前后端分离项目中,一般都是post请求
- 在新窗口,参数都在链接上显而易见
- 使用表单
a标签形式
//这里是js代码
var a = document.createElement("a");
a.href="http://www.baidu.com";
a.target="_blank";
a.click();
表单形式
一般使用这种方式,代码我也放到github上
建议从 github 获取---因为以下代码有缺陷的话在github中会修复,优化...
并且有压缩版(速度更快)
https://github.com/1711680493/Application/tree/master/ShendiWeb/Win
其他功能
https://github.com/1711680493/Application/tree/master/ShendiWeb
/**
* 在新窗口中打开一个连接
* @param url 请求路径
* @param type 请求类型
* @param param 请求参数,格式为name=value&name=value...
*/
function open(url, type, param) {
var form = document.createElement("form");
form.action = url;
form.target = "_blank";
form.method = type;
form.style.display = "none";
var params = param.split("&");
for (var i = 0;i < params.length; i++) {
var input = document.createElement("input");
var map = params[i].split("=");
input.name = map[0];
input.value= map[1];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}