如何在window.open()中发布

时间:2011-05-23 16:39:23

标签: javascript html post get

当我们执行window.open()时,是否有指定method = POST的选项?默认情况下,它是GET

我想要的是这个。父窗口有一些表单参数(数量很多),它们应该在window.open()上发送到服务器。使用查询字符串在GET url中附加所有这些内容并不是一个好主意。

1 个答案:

答案 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。