3

我正在调用 Javascriptwindow.open()函数以在弹出窗口中加载另一个 url。当用户关闭弹出窗口时,我希望MyThanks()调用该函数。我怎么能做到这一点?

我的脚本:

<!DOCTYPE html>
<html>
<head>
    <script>
    function openWin(){
        myWindow=window.open('http://facebook.com/ekwebhost','','width=600,height=400,left=200');
        myWindow.focus();
    }

    function MyThanks(){
        alert("Thanks");
    }
    </script>
</head>
<body>

    <input type="button" value="Open window" onclick="openWin()" />

</body>
</html>

关于弹窗的使用:

您是否知道 Facebook 和 Twitter 仍然使用弹出窗口供用户喜欢和关注。访问http://www.ekwebhost.com并单击 Facebook 的“赞”按钮或 Twitter 的“关注”按钮。为什么我不能根据自己的需要使用弹出窗口?

4

3 回答 3

0
function openWin(){
    myWindow=window.open('http://facebook.com/ekwebhost','','width=600,height=400,left=200');
    // Add this event listener; the function will be called when the window closes
    myWindow.onbeforeunload = function(){ alert("Thanks");}; 
    myWindow.focus();
}

尝试这个!

你可以换掉function(){ alert("Thanks");};forMyThanks来调用你的函数。

于 2013-08-13T15:45:46.543 回答
0

您打开的新窗口将具有一个名为的属性,该属性opener引用Window创建它的对象。然后,您可以通过调用来调用父窗口上的函数window.opener.MyThanks();

弹出:

<script type="text/javascript">
  function closePopup() {
    window.opener.MyThanks();
    window.close();
  }
</script>
<div>
  <h1>My Popup</h1>
  <!-- Form or info to display -->
  <button onclick="closePopup();">Close</button>
</div>

虽然浏览器弹出窗口本质上没有任何问题,但它们可能会很烦人,因为用户可能会在其他窗口后面丢失它们。此外,它会将他们的注意力从您的页面上转移到做其他事情上。我目前开发的应用程序正在尝试将我们所有的弹出窗口移动到 Javascript 对话框中。一旦深入 3 个弹出窗口,用户就会非常烦人。

有很多方法可以在您的网页中创建对话框。jQuery UI是我喜欢的一个库。

于 2013-08-13T16:11:16.397 回答
-1

你可以试试这个:

<script>
  function openWin() {
    myWindow = window.open('http://facebook.com/ekwebhost', '', 'width=600,height=400,left=200');
    myWindow.focus();
    MyThanks();

  }

  function MyThanks() {
    alert("Thanks");
  }
</script>
于 2020-01-02T10:21:37.220 回答