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