窗口打开 POST

7

我有一个链接,当点击它时,我会像下面这样使用window.open打开一个窗口。

 window.open("edit.jsp?clientId=" + clientId + "&eventId=" + eventId , 'height=600,width=800,scrollbars=1,location:no,menubar:no,resizable=1,status:no,toolbar:no');

我不希望在此处传递参数,而是希望使用类似于post的方式,这样人们就无法复制URL。

5
这个问题看起来类似:window.open post - richaux
3个回答

16

你不能触发javascript弹出窗口然后强制进行POST请求。

三个选项:

  1. 使用javascript触发一个带有target="_blank"的POST表单(但这不允许你禁用诸如菜单栏之类的界面元素)。
  2. 在本地打开一个弹出窗口,但不指定URL。使用window.open的结果来更改文档以生成一个表单,然后进行POST提交。

  3. var myWindow = window.open("", "", "height=600,width=800,scrollbars=1,location=no,menubar=no,resizable=1,status=no,toolbar=no");
    myWindow.document.write("Write a form here and then later on trigger it");
    
  4. 你真的不应该这么做。如果复制URL对用户来说是不好的,那么你的应用程序设计存在缺陷。

  5. 编辑后添加:使用“空白窗口”方法,但不是编写一个表单并触发它,而是在父窗口中进行一个XMLHTTPRequest(使用POST)。此请求的结果可用于填充子窗口。


7
除了我自己会使用的AJAX(jquery.load())之外,以下方法怎么样:
<form method="post" action="edit.jsp" target="_blank">
      <input type="hidden" name="clientId" value="88"/>
      <input type="hidden" name="eventId" value="2"/>
</form>

使用 target = _blank 会打开一个新的窗口/标签页,并且提交的数据将在其中处理。

不幸的是,你几乎无法控制新窗口的外观。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接