Wie die Titel für die neue Registerkarte im browser?
Ich habe eine Frage zu den neuen tab für den link.
Ist es sowieso ich kann die browser-Registerkarte-Titel, bevor Benutzer auf einen link klickt? Es scheint, wie es gibt keinen Weg, um über die Titel für die neue Registerkarte, wenn Sie die html-enthalten im neuen tab keine Titel-Attribut. Bin ich im Recht? Wie ändere ich den Titel?
//the href is dynamic so I can't set them one by one because I have 100+ html file here
<a href="test.html" target="_blank">open me<a>
- Du meinst
document.title = 'foo';
? href
ist dynamisch, so dass Sie müssen einige Informationen auf diesen Seiten kommen aus einer DB oder was auch immer. So setzen Sie es, wenn eine Seite geladen wird ...- wie eigenen sich die Seite "neuer tab"? Sie oder ist ein externer link? verursachen, wenn seine Sie können die Titel über die url als parameter auf und verbrauchen es, wenn der Reiter seine offene
- Sie bedeuten, dass Sie möchten, übergeben Sie den Titel für die nächste Seite mit Ihrem link?
- Ich kann das nicht tun, weil es eröffnet eine neue Registerkarte und ich hätte mehr als 100+ html-Datei zu öffnen. Ich habe nicht den Zugriff auf diejenigen html-Dateien, und Sie nicht angeben, welche Titel in der html
- ja. Das ist es, was ich fordere. Danke.
- Sie keinen Zugriff haben, sind diese Drittanbieter-Seiten in eine andere domain? Wenn dem so ist, gibt es nichts, was Sie tun können.
- Ist die Seite, die Sie gehen zu verkaufen?
- Nein, es ist nicht möglich, es sei denn, Ihre Seiten haben javascript in Griff bekommen params, um den Titel. wie: <ein href="Seite.html?title=Mein Titel" target="_blank">Klick mich</a>
- ja, es wird mir sein(gleiche domain)
- Ok, also check meine Antwort 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie es haben, ist dies nicht möglich, weil Ihre links sind nur normale HTML-links. Wenn sich die neue Seite öffnet sich in einem neuen tab, wird die aktuelle Seite keine Bezugnahme auf es und so nicht ändern es in keiner Weise. Sie benötigen zum öffnen der Seite mit javascript und den Titel so.
Können Sie dynamisch setzen Sie diese in
window onload
alle zu findena
- tags und fügen Sie einclick
Veranstaltung whihc öffnet das Fenster und setzt den Titel.Wenn Sie möchten, verschiedene Titel für jede Seite, die Sie können, speichern Sie diese in einer
data-
Attribut in dera
tag.Beachten Sie tho, dass dies funktioniert nur mit Seiten in der gleichen domain (für die Sicherheit), und dass es nicht mit Menschen Rechtsklick und auf "in Neuem Fenster Öffnen". Mitte klicken Sie in Windows scheint zu funktionieren jedoch.
HTML
JavaScript
Beispiel JsFiddle
Können Sie übergeben den Titel mit hash und bekommen es auf einer anderen Seite, wenn dies eine andere Seite ist Ihnen und Sie können ändern Sie den code.
1. Seite:
2. Seite - ändern Sie den body-Start-tag, wie diesem:
Wenn die Seite, die Sie verlinken ist nicht bei Ihnen, können Sie verwenden
window.open
Methode:Haben Sie zwei Möglichkeiten. Mit reinem HTML können Sie lassen Sie die Benutzer das öffnen von links, dann später auf die überschrift ändern. Oder können Sie den Titel ändern, mit inline-JavaScript. Hier ist, wie Sie tun: Sie
Methode 1
Ändern Sie Ihre links durch die Zuordnung eines target-Attribut, und dann später auf dieses Fenster verwenden Namen, um die Kontrolle des Dokuments. Zum Beispiel in deinen links wäre das:
<a href="whatever" target="theNewWindow">
. Wenn Sie möchten, ändern Sie den Titel für diese Seite, die Sie verwenden würden, JavaScript als solche:window.open("", "theNewWindow").document.title = "New Page Title!";
Das problem mit dieser Methode ist jedoch, dass alle links mit target/Fenster name öffnet im gleichen Fenster. Darüber hinaus, nach der das erste mal den link angeklickt wird, ist Ihr browser nicht automatisch auf den neuen tab/Fenster.Methode 2
Ändern Sie Ihre links durch die Zuweisung einer onclick-Attribut, welches sich öffnen würde, den link manuell und ändern Sie den Titel der Seite sofort. Grundsätzlich kommen würde, um zu schauen wie:
<a href="whatever" onclick="var w=window.open(this.href, '_blank'); (w.onload=function(){w.document.title='New Page Title!';})(); return false;">
. Dies öffnet das Fenster basierend auf den "href" - Attribut, ändert sofort den Titel, und setzt das Fenster, den Titel zu ändern, sobald es fertig geladen ist (nur für den Fall, es war wirklich ein title-tag).Das problem mit beiden Methoden (wie von anderen erwähnt) die html Dateien müssen auf der gleichen domain.
Wenn Sie in der Seite 1, und öffnung Seite 2 in einem neuen tab, Sie können nicht Titel für Seite 2 von Seite 1.
Wenn Sie Zugriff auf Seite 2 ist, dann ist es möglich, sonst nicht.
window.open
, so erhalten Sie eine Referenz auf die Registerkartewindow
und alles drin.Könnten Sie Ihre eigenen Seite 2 öffnet, die anderen Seiten (die, die Sie nicht Bearbeiten können), in einem frameset. Sie können dann entweder den Titel ändern sich dynamisch, wenn das laden Ihrer Seite 2, oder, wie andere vorgeschlagen haben, wenn Sie Fenster.öffnen Sie können die Titel aus der übergeordneten Seite.
Habe ich nicht gesehen addEventListener zuverlässig arbeiten, insbesondere beim öffnen einer neuen Seite mit javascript. Der beste Weg zu ändern, die Registerkarte Titel und zuverlässig ist, um ein timeout, bis die Seite geladen wird. Sie können spielen mit der timeout-Wert, aber es funktioniert.