Greasemonkey kann nicht:
- Siehe andere Registerkarten.
- Überprüfen Sie die URLs anderer Registerkarten.
- Suchen Sie nach DOM-Knoten / -Elementen in anderen Registerkarten.
Der Grund ist, dass Greasemonkey, Tampermonkey usw. diese APIs nicht für / für Benutzerscripts verfügbar machen.
(Vollwertige Browsererweiterungen können all diese Dinge tun.)
Greasemonkey kann:
- Cross-Kommunikation zwischen Skriptinstanzen mit
GM_setValue()
Doc undGM_getValue()
Doc . - Manchmal können Sie auch verwenden
.postMessage()
. ( Beispiel )
Dies funktioniert wahrscheinlich nur für Sie, wenn Siewindow.open
die neue Registerkarte erstellen. - Da Sie sich auf derselben Domain befinden, können Sie auch
localStorage
Cookies verwenden, um die Kommunikation zu unterbrechen. - Wenn die neuen Registerkarten schließlich von der Hauptregisterkarte aus geöffnet werden, können Sie über URL-Parameter (oder den Hashwert) mit der neuen Registerkarte kommunizieren. Ein Beispiel dafür finden Sie in diesem Benutzerskript . (Beachten Sie, wie die SEMC-Links behandelt werden.)
Ich bin nicht auf der Suche nach jemandem, der dieses Skript für mich schreibt. Ich glaube, ich bin in der Lage, das Skript zu schreiben, wenn ich wusste, wie man einige Dinge tut. Wenn es ein Skript gibt, das all dies oder das meiste davon bereits erledigt, wäre das auch großartig.
Alle Teile und Teile wurden in Stack Overflow angesprochen, aber nicht in einer Frage, an die ich mich erinnere.
Wenn Sie Variablen für die Kommunikation verwenden (Methoden 1 oder 3), stellen Sie sicher, dass Sie über einen beforeunload
Event-Handler verfügen, der die Variablen löscht, bevor die Masterseite geschlossen wird.