window.open 参数传递post
时间: 2023-05-01 15:00:59 浏览: 197
window.open 方法可以打开新窗口或新标签页,它接受一个 URL 作为第一个参数,其他参数可以选择性传递。
如果要使用 POST 方法传递参数,可以在 URL 中添加一个 form 表单,并在 JavaScript 代码中设置表单的 action 和 method 属性,然后在调用 window.open 方法时传递该表单。
例如:
```
<form id="form" action="http://example.com" method="post">
<input type="hidden" name="param1" value="value1">
<input type="hidden" name="param2" value="value2">
</form>
<script>
var form = document.getElementById("form");
var newWindow = window.open("about:blank", "new_window");
newWindow.document.body.appendChild(form);
form.submit();
</script>
```
这里需要注意的是需要在新窗口中提交表单,而不是在当前窗口中。
相关问题
window.open 不通过URL传递参数
可以通过在打开的页面中使用 JavaScript 代码来获取参数。具体来说,您可以使用 `window.opener` 属性来获取打开当前窗口的窗口对象,然后使用该对象的 `postMessage()` 方法向该窗口发送消息,并在打开的页面中使用 `window.addEventListener()` 方法来侦听消息事件。在接收到消息后,您可以在打开的页面中执行相应的操作。以下是一个简单的示例代码:
在打开窗口的页面中:
```javascript
var myWindow = window.open("http://example.com/myPage.html");
myWindow.postMessage("myParameter", "*");
```
在打开的页面中:
```javascript
window.addEventListener("message", function(event) {
if (event.origin !== "http://example.com") return;
// event.data 包含发送的参数
}, false);
```
请注意,这种方法可能存在安全风险,因此您应该仔细考虑使用它。
window.open post
window.open()是JavaScript中的一个方法,用于在浏览器中打开一个新的窗口或标签页。它可以接受两个参数:URL和窗口的名称(可选)。当使用window.open()方法时,浏览器会打开一个新的窗口或标签页,并加载指定的URL。
下面是一个使用window.open()方法打开一个新窗口并发送POST请求的示例:
```javascript
function openNewWindowWithPost(url, data) {
var form = document.createElement("form");
form.method = "post";
form.action = url;
for (var key in data) {
if (data.hasOwnProperty(key)) {
var input = document.createElement("input");
input.type = "hidden";
input.name = key;
input.value = data[key];
form.appendChild(input);
}
}
document.body.appendChild(form);
form.submit();
}
// 调用示例
var postData = {
username: "john",
password: "123456"
};
openNewWindowWithPost("https://example.com/login", postData);
```
上述代码创建了一个新的form元素,并将其method属性设置为"post",action属性设置为指定的URL。然后,它遍历数据对象,并为每个键值对创建一个隐藏的input元素,将键作为name属性,值作为value属性。最后,将form元素添加到文档的body中,并调用submit()方法提交表单。
这样,浏览器会打开一个新的窗口或标签页,并向指定的URL发送POST请求,同时将数据作为请求的参数传递给服务器。
阅读全文