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

时间:2016-11-10 14:33:59

标签: javascript jquery tabs

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

3 个答案:

答案 0 :(得分:1)

我们假设您的页面上有此链接:

<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();

答案 1 :(得分:0)

是的,它是使用document.body方法。

声明你的窗口:

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

在您的函数中,您可以使用document.body方法访问:

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

答案 2 :(得分:0)

你需要这样的东西(里面的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支持