我正在处理文件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
。
答案 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>