繁体   English   中英

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

[英]Javascript to reload a new tab page

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', 'New Window'); setTimeout(function () { var win = window.open('google.com', 'New Window'); },3000);

这是我能想到的最好的方法。 它打开新选项卡并“重新加载”新选项卡而不是刷新它。

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

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

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

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

你不能这样做。

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

同源策略可以防止这种情况。

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

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


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

在过去的几周里,我做了一些类似的工作,下面的代码对我有用。

索引.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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM