打开新选项卡时,用Javascript刷新当前打开的选项卡

Refresh currently open tab with Javascript when a new tab is opened

本文关键字:选项 刷新 Javascript 新选项      更新时间:2023-09-26

是否可以刷新当前打开的选项卡,当一个新的选项卡是通过点击第一个选项卡中的链接打开?基本上,最终的结果是这样的:第一个标签被打开,在第一个标签中打开的页面上的链接被点击(用鼠标中键或类似的东西,只是为了让它在第二个标签中打开),被点击的链接在第二个标签中打开,然后第一个标签自动刷新。我希望我的解释可以理解。注意:我不是在设计我自己的网站,我想为Greasemonkey网站做一个插件。

让我们假设你的页面上有这个链接:

<a href="http://server.com/url-to-second-tab" target="_new">Link which opens new tab and refreshes current one</a>

在js脚本你添加这个(假设你正在使用jQuery,如你所说):

$(document).ready(function(){
   $('body').on('click','a',function(e){
        e.preventDefault()
        // Open new tab - in old browsers, it opens a popup window
        window.open($(this).attr('href'), '_blank');
        // reload current page
        location.reload();
   })
})

请在所有浏览器中测试,因为在某些浏览器中它可能会以弹出窗口而不是新选项卡的形式打开链接。

作为一个快速测试,在Chrome上打开F12开发工具,并在控制台中编写:

window.open('https://google.com', '_blank');location.reload();

是的。体方法。

声明你的窗口:

w = window.open("yourUrl", "MYtest", "width=700, height=500");

在你的函数中你可以用document访问。体方法:

html = "I Append my new html";
$(w.document.body).html(html);

你需要这样做(jquery代码里面):

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Title</title>
  <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
</head>
<body>
    <a id="myLink" href="http://www.google.com">Click me</a>
    <div id="toUpdate">Not updated</div>
</body>
<script>
$(function() {
    $("#myLink").on("click", function(event) {
        event.preventDefault();
        window.open(event.target.href, '_blank');
        $("#toUpdate").text("Go on google");
    }).on("mousedown", function(event) {
        event.preventDefault();
        if (event.which === 2)
            $("#toUpdate").text("Go on google");
    });
});
</script>
</html>

编辑添加Firefox支持