用于重新加载新标签页的 Javascript

时间:2021-07-24 16:27:40

标签: javascript html

window.open("http://google.com", '_blank');

var childWindow = "http://google.com";

childWindow.location.href = "http://google.com";

我有一个 eventAddListener 可以通过按下按钮在新标签页上加载 http://google.com,但在它打开 google.com 的新标签页后,我希望它再次刷新。不是我的基页,而是新标签页本身。我展示的代码只是 5 页谷歌搜索无效的示例之一。

更新: var win = window.open('google.com', '新窗口'); setTimeout(function () { var win = window.open('google.com', 'New Window'); },3000);

这是我能想到的最好的了。它会打开新标签并“重新加载”新标签而不是刷新它。

例如,我想要的是,您单击新选项卡,粘贴链接,然后按 Enter,执行链接。我基本上想要一个执行链接的 javascript 函数。

3 个答案:

答案 0 :(得分:0)

根据我的理解,您希望新选项卡在使用 Javascript 打开后刷新,而不是从您运行 Javascript 代码的当前选项卡。

这不是直接可能的。您只能从当前选项卡执行 Javascript 代码。新打开的选项卡不知道 Javascript 代码应该运行。当前选项卡不能传递新选项卡执行的指令。

但是,您可以先选择新打开的选项卡,然后执行 Javascript 代码来刷新页面。但这可能违背了您尝试做的目的。

答案 1 :(得分:0)

你不能这样做。

为了在新选项卡/窗口中触发重新加载,您需要在该选项卡/窗口中运行 JS。

same origin policy 可以防止这种情况发生。

如果您可以控制新页面,那么您可以在其中运行一个事件侦听器并post a message 要求该侦听器触发刷新。

显然你不能用谷歌的页面来做到这一点。


然而,这个问题读起来像一个 XY problem。如果目标是显示新鲜(而不是旧的、缓存的、过时的)信息并且目标页面不是第三方页面,那么您不应该使用 JS 来破解缓存。而是首先在目标页面上设置更好的 caching rules

答案 2 :(得分:0)

过去几周我从事过类似的工作,下面的代码对我有用。

index.html

<button onclick="openTab()">New Tab</button>

<script>
    function openTab(){
        //this opens a new tab while creating a variable name for that tab
        var newTab = window.open("https://google.com","_blank");
        //this refreshes that new tab
        newTab.location.reload();
    }
</script>

只是为了证明这适用于我使用代码的新标签

<script>
    function openTab(){
        //this opens a new tab while creating a variable name for that tab
        var newTab = window.open("https://google.com","_blank");
        //this will alert in the new tab
        newTab.alert("New Tab");
        //before the following reload code takes effect
        //this refreshes that new tab
        newTab.location.reload();
    }
</script>

希望这就是您正在寻找的。

相关问题