2016-11-10 5 views
1

Wäre es möglich, die aktuell geöffnete Registerkarte zu aktualisieren, wenn eine neue Registerkarte durch Klicken auf eine Verknüpfung in der ersten Registerkarte geöffnet wird? Grundsätzlich wäre das Endergebnis wie folgt: Die erste Registerkarte ist geöffnet, ein Link auf der Seite, die in der ersten Registerkarte geöffnet ist, wird angeklickt (mit der mittleren Maustaste oder ähnlichem, nur um sie in der zweiten zu öffnen) Registerkarte), der angeklickte Link wird in der zweiten Registerkarte geöffnet und dann wird die erste Registerkarte automatisch aktualisiert. Ich hoffe, dass ich es verständlich erklärt habe. Hinweis: Ich entwerfe keine eigene Website, ich möchte mit Greasemonkey ein Plugin für die Website erstellen.Aktuell geöffnete Registerkarte mit Javascript aktualisieren, wenn eine neue Registerkarte geöffnet wird

Antwort

1

Nehmen wir an, Sie haben diesen Link auf Ihrer Seite:

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

In js Skript diese fügen Sie (vorausgesetzt, Sie jQuery verwenden, wie Sie angegeben):

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

Bitte testen Sie es in allen Browsern Wie in einigen Browsern kann der Link als Popup-Fenster anstelle eines neuen Tabs geöffnet werden.

Als Schnelltest, offen mit F12-Entwicklertools auf Chrome und in der Konsole schreiben:

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

Scheint der einzige zu sein, der funktioniert hat, vielen Dank dafür :) –

0

Ja ist es mit document.body Methode.

Erklären Sie Ihre Fenster:

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

Und in Ihrer Funktion können Sie mit document.body Methode zugreifen:

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

Ich glaube, ich es gut genug, um nicht zu erklären haben. Dies sollte besser zeigen, was ich meine: http://i.imgur.com/6BPPVOY.png –

+0

Ok Entschuldigung, wenn schwer zu verstehen, was Sie wollen. Bitte fügen Sie weitere Details hinzu. vielleicht ein bestes Bild. –

0

Sie müssen so etwas wie dieses (jquery Code innen):

<!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> 

Bearbeitet, um Firefox-Unterstützung hinzuzufügen

Verwandte Themen