【问题标题】:How To Change a Popup Window's Location如何更改弹出窗口位置
【发布时间】:2012-12-29 22:27:53
【问题描述】:

我的应用程序正在打开一个弹出窗口,如下所示:

function newPopup(url, windowName) {
    window.open(url,windowName,'height=768,width=1366,left=10,top=10,titlebar=no,toolbar=no,menubar=no,location=no,directories=no,status=no');
}
<a href="JavaScript:newPopup('lobby.do', 'lobby');">Enter Lobby</a>

在该弹出窗口内,我希望用户能够通过单击链接来移动该弹出窗口的位置:

<a href="game.do">New Game</a>

但是,当在弹出窗口中单击此链接时,弹出窗口会自动关闭,并且不会发生重定向。我尝试添加一个 onClick 并使用 javaScript:window.location,但得到了相同的结果。知道是什么原因造成的吗?我已经在 Chrome 和 Firefox 中进行了测试。

【问题讨论】:

  • 那么这个链接是在主页中还是在弹窗中?

标签: javascript html


【解决方案1】:

只需将链接的target 设置为弹出窗口的名称即可。

<a href="game.do" target="lobby">New Game</a>

或者保存从window.open返回的值并设置它的.location

function newPopup(url, windowName) {
    return window.open(url,windowName,'height=768,width=1366,left=10,top=10,titlebar=no,toolbar=no,menubar=no,location=no,directories=no,status=no');
}

<a onclick="window.lobby=newPopup('lobby.do', 'lobby'); return false;" href="#">Enter Lobby</a>
<a href="window.lobby.location='game.do'; return false;" href="#">New Game</a>

【讨论】:

    【解决方案2】:

    要在新窗口中打开它,您需要在 html 链接的末尾添加 target_blank,如下所示:

    <a href="http://link-to-your-game" target="_blank">Enter Lobby</a> 
    

    【讨论】:

    • 不知道为什么我的考试不显示它是link-to-your-game" target="_blank">进入大厅
    • 我可能最终需要走这条路,但我希望不必这样做。我想将大厅和游戏都保持在这个预定义的窗口大小,所以使用弹出窗口似乎是最好的途径。我只是不确定为什么弹出窗口被关闭而不是被重定向到我想要的页面。
    【解决方案3】:

    为什么不使用ajax:

    &lt;a onclick="ajaxcall_to_newpage()"&gt; click here to update the content &lt;/a&gt;

    你的 ajax 函数从服务器请求新内容并将其呈现为 html:

    ..
    }).done(function(data){
       $('#your_div_of_pop_up').text(data);
    });
    

    任务完成!

    【讨论】:

      【解决方案4】:

      如果我理解正确,您需要为弹出窗口命名。然后您可以参考该弹出窗口来更改它的内容。

      你只需要一点JavaScript

      function createPopup(url) {
          newwindow=window.open(url,'testWindow','height=800,width=600');
          if (window.focus) {newwindow.focus()}
          return false;
      }
      

      可以这样使用:

      <a href="#" onclick="createPopup('http://www.google.com')" target="mine">use google</a>
      <a href="#" onclick="createPopup('http://www.stackoverflow.com')" target="mine">use stackoverflow</a>
      

      因此,您可以从 窗口控制弹出窗口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-23
        • 2017-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多