【问题标题】:Opening new window with Post data (PHP, Javascript)使用 Post 数据打开新窗口(PHP、Javascript)
【发布时间】:2012-10-17 16:22:55
【问题描述】:

我正在尝试执行以下操作,有人可以帮忙吗?

我创建了一个接受 json 对象的 php 文件。此网页旨在直接向用户显示。

如何在不使用 html 表单的情况下从另一个页面打开此页面?我需要一个简单的解决方案,如下所示。

Javascript(如果需要,可以支持 JQuery):

    var JsonParamToPass=jsonObj;
    var postData=JsonParamToPass;
    window.open("www.myAwesomePageThatAcceptsPostData.com",'_blank',method=POST,postData); 
  //the last two variables are made up and i need to find a way to do that, that can easily be given to other people to use.

我想避免使用 ajax 请求并将输出写入新页面,并且我想尽可能避免创建表单。

谢谢,

【问题讨论】:

  • 您是否有充分的理由不使用 Ajax 和/或表单?在每种情况下,您都会将输出写入新页面。当窗口打开时,它是一个新页面,不是吗?
  • 原因是为了方便其他人使用。此页面是为其他人打开的,如果它不简单,其他人将不会使用它。如果只是我,我会使用 $.POST() 并将数据写入 newWindow。我正在寻找 javascript/jquery 的内置函数或让浏览器发出发布请求的方法(我认为大多数人不会这样做)

标签: php javascript post window request


【解决方案1】:

您可以使用 javascript window.opener 方法来访问父窗口变量。

var myVar = window.opener.parentVar;

您不能使用隐藏表单并使用 javascript 提交它的任何原因如下: (这将在您的原始窗口中,并且 document.submit 将打开一个新窗口而不是使用当前窗口)

<form name="myForm" action="http://yourAwesomePage" method="POST">
    <input type="hidden" id="myVar" name="myVar" value = "">
</form>

<SCRIPT type="text/javascript">
    document.myForm.myVar.value = someValue;
    document.myForm.submit();
</SCRIPT>

【讨论】:

  • 虽然这行得通,但我试图让其他用户更容易做到这一点。我认为我要去的方向是提供一个 javascript 库并让它接受 json 变量。然后附加一个隐藏的表单并提交,但我想避免让用户做太多的工作来打开窗口。
猜你喜欢
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2012-12-17
  • 1970-01-01
相关资源
最近更新 更多