[JavaScript]js中window.open新窗口怎么实现post方式的参数传递

看到过这篇介绍没有搞明白
今天看到有篇文章写到 windows.open 可以post方式传递参数,就赶紧照作看看,结果是可行的,
感谢撰写这篇文章的作者~

/**
* window.open with post method
*/
function openWindowWithPost(url, name, keys, values) {
var newWindow = window.open(url, name);
if (!newWindow){
return false;
}

var html = "";
html += "<html><head></head><body><form id='formid' method='post' action='" + url + "'>";
if (keys && values && (keys.length == values.length)){
for ( var i = 0; i < keys.length; i++){
html += "<input type='hidden' name='" + keys[i] + "' value='" + values[i] + "'/>";
}
}
html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
newWindow.document.write(html);
return newWindow;
}

详细参考网址:http:// www. dotblogs. com.tw/puma/archive/2008/09/03/5288.aspx

POST是HTTP请求的一种,只能用于用户端与服务器端的数据传递.JS只能通过触发一个事件来执行POST动作,但却无法将数据POST到另外一个页面.
表单(FORM)可以产生POST请求,但是却无法用在window.open方法中,你可以给表单添加target=_blank属性,使表单提交的结果显示在新的窗口(或标签页)中.

你补充的问题和你提问的标题说的好像不是一回事. 你补充的内容也是通过POST将数据发送到服务器,而非调用window.open的页面.
也许这就是你的本意,但你的问题确实很容易让人想到是两个窗口间的数据传递.追问

我就是想把数据通过POST穿到window.open的新窗口
在百度搜索 Window open() post 有不少关于这方面的
特别是这http ://yuxuguang.iteye. com/blog/895108 (地址中间不加空格老回复不了)
window.open以post方式提交 - 点滴 - ITeye技术网站

追答

POST传值只能通过后端处理才能实现,直接用JS是无法实现的.

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-09-01
这是先用window.open打开一个网址,然后直接写入新打开窗口的document, 在document中写入一个提交方式为post的form, 以及需要post的数据(用hidden元素),在document的最后则写入一个javascript脚本,将那个form提交给指定的网址。
说白了,就是自己在新窗口中建立表单(form),然后post表单来实现所谓的post传递参数。
第2个回答  推荐于2018-07-14
这是我自己用的方法,是可以的:
<script language="javascript">
function opennew(){
var url="ttt2.asp"; //目标页面
document.form1.action=url;
var newwin = window.open('about:blank', 'newWindow', 'height=100,width=400,top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
document.form1.target = 'newWindow';//这一句是关键
document.form1.submit();
}
</script>

<form id="form1" name="form1" action="" method="post">
<input name="test" value="1111111111"/><input type="button" value="提交" onclick="opennew();" />
</form>本回答被网友采纳
第3个回答  2017-07-19
myWindow=window.open('','MyName','width=200,height=100');myWindow=window.open('','MyName','width=200,height=100');myWindow.document.write("Thisis'myWindow'")myWindow.focus()myWindow.opener.opener.document.write("Thisistheparentwindow")
第4个回答  2017-09-02
varurl="file://10.70.12.73/XXXX"+Slink;varnw=top.window.open(url,"nw","width=700,height=670,scrollbars=yes,alwaysRaised=yes,depended=yes");//这句nw.document.title=Slink;这样就OK了。
相似回答