窗口关闭时发送响应

时间:2013-09-30 23:35:57

标签: javascript html

目标

窗口关闭时发送truefalse

问题

当我点击一个按钮时,会打开一个带有window.open();语法的窗口。我需要的东西似乎很简单:当窗口关闭时,返回到打开弹出窗口的窗口,来自服务器的响应可以是truefalse - 就像Facebook的API一样。 / p>

有人知道我怎么能以简单的方式做到这一点?

聚光灯

我不想使用jQuery,因为页面的CSS会覆盖弹出窗口的CSS。

当前语法

HTML:

[...]
<a href="#" class="share" data-networkName="<?php echo $network->name; ?>">
    Share</a>
[...]

JS:

$(".share").on("click", function(event) {
    event.preventDefault();

    var networkName = $(this).data("networkName");

    window.open("share.php?network=" + networkName");
});

2 个答案:

答案 0 :(得分:5)

这就是我提出的:

更新

<强> receive.html

<a href="#" onclick="openWindow()">Share</a>

<script>
  var new_window = null;

  function openWindow() {
    new_window = window.open('return.html');
  }

  // Callback Function that we will call in child window
  function sendMessage(message) {
    alert(message);
    new_window.close();
  }
</script>

<强> return.html

<a href="#" onclick="window.messageParent();">Mark As Shared</a>

<script>
  function messageParent() {
    // Calls sendMessage function on the parent window.
    window.opener.sendMessage("Hello World!"); 
  }
</script>

然后,您可以在父窗口中的sendMessage函数中处理您想要的返回值。

这是我能提出的最简单的方法。如果有效,请告诉我。

答案 1 :(得分:1)

试试这个:

$(".share").on("click", function(event) {
    event.preventDefault();

    var networkName = $(this).data("networkName");
    window.onbeforeunload = function() {
        window.open("share.php?network=" + networkName");
    }
});

<强>更新

main.php的脚本:

$(".share").on("click", function(event) {
        event.preventDefault();

        var networkName = $(this).data("networkName");
        window.onbeforeunload = function() {
            window.open("share.php?network=" + networkName");
        }
    function send(msg) {
        //send msg to db or store as cookies
    }
    });

popup.html的脚本:[假设您有一个名为'#popup-btn'的分享按钮]

$('#popup-btn').click(function() {
    window.opener.send('MSG SENT FROM POPUP {THEY SHARED SOMETHING}');
});