当我们执行window.open()
时,是否有指定method = POST
的选项?默认情况下,它是GET
?
我想要的是这个。父窗口有一些表单参数(数量很多),它们应该在window.open()
上发送到服务器。使用查询字符串在GET
url中附加所有这些内容并不是一个好主意。
答案 0 :(得分:14)
您可以使用window.open()
打开一个带有名称的空窗口。然后你可以使用带有“target”属性的<form>
引用该新窗口的名称,然后发布它。
编辑好的就是这个想法。您在页面上有一个表单,可以隐藏它:
<form id='theForm' method='post' action='/your/action' target='TheNewWindow'>
<input type='hidden' name='param_1' value='whatever'>
</form>
然后你将结果输入你的窗口:
window.open('about:blank', 'TheNewWindow');
document.getElementById('theForm').submit();
确保您使用的窗口名称是有效的标识符(如JavaScript变量名称),否则IE将会感到不安。
Here是一个jsfiddle。