当我点击按钮时重新加载另一页

时间:2018-12-10 19:20:29

标签: javascript php html

我正在处理文件myfile.php。在此文件中,我具有以下代码:

<button type='submit' name='refresh' onclick='refresh()'></button>
<script>
    function refresh(){ 
        setTimeout(window.location.href = "summary.php",1000);
    }
</script>

单击刷新按钮时,窗口的位置将更新,浏览器将加载文件summary.php。但是,我想保留在myfile.php上并在第二个标签页中刷新文件summary.php

2 个答案:

答案 0 :(得分:1)

首先,您必须使用window.open打开第二个选项卡并保存对其的引用,以便稍后可以在单击该按钮时重新加载该选项卡。这是直接直接访问/控制来自JavaScript的单独标签的唯一方法。请注意,由于Same-origin policy,您只能对同一域中的页面执行此操作。如果您要刷新其他域上的页面,则最好的方法是在标签上设置location.href

这是一个非常简单的示例,说明如何使用您的代码:

<button type="button" name="refresh" onclick="refresh()">Refresh</button>
<script>
    let secondWindow = window.open('summary.php');
    function refresh() { 
        secondWindow.location.reload(true); // Use true to always force reload from the server
    }
</script>

这将导致您在加载summary.php时在新标签页或窗口中打开myfile.php。之后,您应该可以单击第一页中的刷新按钮,第二页将重新加载。

如果您不希望summary.php自动打开,则可以添加手动打开窗口的方式:

<button type="button" name="open" onclick="open()">Open</button>
<button type="button" name="refresh" onclick="refresh()">Refresh</button>
<script>
    let secondWindow;

    function open() {
      secondWindow = window.open('summary.php');
    }

    function refresh() {
      if (secondWindow) {
        secondWindow.location.reload(true); // Use true to always force reload from the server
      }
    }
</script>

如果您不想依靠JavaScript打开第二个标签,则可以将Broadcast Channel API作为替代选项。您可以在单击按钮时从第一页发送“刷新”消息,并在第二页看到这些消息之一时刷新自身。

答案 1 :(得分:0)

您可以尝试以下方法:

<script type="text/javascript">
    $(document).ready(function() {
        if(performance.navigation.type == 2){
 window.location.replace("www.google.com");
}

 </script>