Hallo,
wie kann ich automatisch alle Links von einer Seite in neuen Tabs öffnen, die ein definiertes Schlüsselwort enthalten?
Danke sehr
Hallo,
wie kann ich automatisch alle Links von einer Seite in neuen Tabs öffnen, die ein definiertes Schlüsselwort enthalten?
Danke sehr
Bspw. mit einem Greasemonkey- oder Ubiquity-Skript.
sagt mir nix, könnt ihr mir das erklären?
Wie man Suchfunktionen benutzt weißt du?
Würde vermutlich auch mit einem Boomarklet gehen.
Greasemonkey/Userscripts:
http://www.firefox-browser.de/wiki/Greasemonkey
https://addons.mozilla.org/de/firefox/addon/748
Bookmarklet:
http://de.wikipedia.org/wiki/Bookmarklet
Wenn du kein Bookmarklet/Userscript selbst schreiben kannst, kann ich dir eines erstellen (der Programmieraufwand dürfte sich in Grenzen halten), allerdings benötige ich dazu mehr Infos:
-welche Seite(n)
-welches Schlüsselwort
ZitatWürde vermutlich auch mit einem Boomarklet gehen.
Mit einem Bookmarklet kannst du i.d.R. keine neuen Tabs öffen, lediglich neue Fenster. Es wäre also noch zusätzlich etwas notwendig, um die neuen Fenster in Tabs umzuleiten.
Zitat von boardraiderMit einem Bookmarklet kannst du i.d.R. keine neuen Tabs öffen, lediglich neue Fenster.
Jein, wenn ich von Firefox > 1.5 und Standardeinstellungen ausgehe,
dann erstellt window.open(URL) einen neuen Tab und kein neues Fenster.
(Wohingegen window.open(URL, parameter) ein (Popup-)Fenster öffnen würde.)
Desweiteren habe ich doch mit Greasemonkey auch keine andere Möglichkeit als window.open(...) um ein neues Fenster bzw. einen neuen Tab zu öffnen, oder?
(Da die Userscripte im Kontext der Webseite ausgeführt werden habe ich ja keinen Zugriff auf die Chrome-Funktionen, mit denen man sich 100%-sicher sein könnte, ob ein neues Fenster oder ein neuer Tab erstellt wird...)
Mein Einwand bezog sich darauf, dass es in JS keine Funktion für das Öffnen von Tabs gibt, lediglich zum Öffnen neuer Fenster. Somit hängt es vom Browser bzw. dessen Konfiguration ab, was dabei geschieht. Grundsätzlich ist es damit nicht verlässlich, was geschieht.
ZitatDesweiteren habe ich doch mit Greasemonkey auch keine andere Möglichkeit
Falsch, Greasemonkey hat eine API über die man neue Tabs öffnen kann, das selbe gilt für Ubiquity - im Gegensatz zu Bookmarklets. Letztere sind von der Anlage her browserunabhängig, daher kann es dabei nur die Methoden aus den JavaScript-Spezifikationen geben.
Zitat von boardraiderFalsch, Greasemonkey hat eine API über die man neue Tabs öffnen kann(...)
OK, diese API-Methode kannte nicht. (Liegt vermutlich daran, dass ich noch kein GM-Script geschrieben habe, dass einen neuen Tab öffnen sollte)
Allerdings hat GM_openInTab(URL) auch so seine Tücken, so funktioniert das nicht auf Seiten, die einen Referrer erwarten:
ZitatOpening webpages by invoking this method may not be the ideal choice, because this method doesn't save the referring page, which makes webservers think that you are calling a page only by it's URL, and not from the webpage it was on. In the cases where it doesn't work, one may use window.open(url) instead, which is similar in that it opens a new tab, but it keeps the referrer and switches to the tab immediately.
http://wiki.greasespot.net/GM_openInTab
Generell stellt sich aber sowieso die Frage ob er die Tabs immer sofort öffnen lassen will (GM-Script besser geeignet), oder nach Bestätigung (beides geeignet).
ZitatAllerdings hat GM_openInTab(URL) auch so seine Tücken
Ggf. kann man sich auch mit XHR behelfen.
Bei Ubiquity hat man noch wesentlich mehr Möglichkeiten, damit lassen sich wohl jegliche Klippen umschiffen in der Hinsicht.
Zitat von A.J.Generell stellt sich aber sowieso die Frage ob er die Tabs immer sofort öffnen lassen will (GM-Script besser geeignet), oder nach Bestätigung (beides geeignet).
das könnten natürlich einige Tabs werden, aber eine Steuerung würde das ganze verkomplizieren da ich früher oder später eh alle öffnen muss.
Seite und Schlüsselwort sollte variabel sein
Befindet sich das Schlüsselwort im Link-Text oder in der URL?
Hallo und guten Abend,
der Text befindet sich im Linktext
Hier das Greasemonkey Script:
// ==UserScript==
// @name Alle Links mit Schlüsselwort öffnen
// @namespace http://www.w3.org/1999/xhtml
// @include URL
// ==/UserScript==
a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
if (a[i].getAttribute('href')) {
if (a[i].textContent.indexOf('Schlüsselwort') != -1) {
if(a[i].getAttribute('href').match(/.*:\/\/.*/)) {
GM_openInTab(a[i].getAttribute('href'));
}
else {
if(a[i].getAttribute('href').slice(0, 1) == "/") {
GM_openInTab(document.location.protocol + "//" + document.location.hostname + a[i].getAttribute('href'));
}
else {
GM_openInTab(document.location.protocol + "//" + document.location.hostname + document.location.pathname.match(/.*\//) + a[i].getAttribute('href'));
}
}
}
}
}
Alles anzeigen
Anmerkungen:
URL (Zeile 4) muss durch die URL ersetzt werden, auf der das Userscript angewendet werden soll. Der Stern * ist Platzhalter für beliebige Zeichen, so würde http://www.example.com/* bedeuten: wende das Userscript auf http://www.example.com und auf allen Unterseiten an.
Schluesselwort (Zeile 11) muss durch das entsprechende Schlüsselwort ersetzt werden. Das Schlüsselwort muss in Hochkommata oder Anführungszeichen eingeschlossen sein.
Die einfachste Methode, das Userscript zu installieren, ist den gesamten Text in einen Texteditor zu kopieren, das ganze als irgendeinname.user.js zu speichern und diese Datei dann zum installieren auf das Firefox-Fenster zu ziehen oder per Datei->Öffnen zu öffnen...
Wow, super, dank dir!
Muss ich in der 4. Zeile die // entfernen?
Wenn ich die Datei öffne oder in das Fenster ziehe, wird lediglich der Inhalt angezeigt.
ZitatMuss ich in der 4. Zeile die // entfernen?
Nein.
ZitatWenn ich die Datei öffne oder in das Fenster ziehe, wird lediglich der Inhalt angezeigt.
Greasemonkey schon installiert? :roll:
Ja jetzt, alles aktiviert, url ist drin, Affe leuchtet aber irgendwie fehlt ein GO! Knopf
Also habe Greasemonkey installiert und unten rechts ist das Icon.
Wenn ich nun die .js in das Fenster ziehe kommt ein Fenster und ich kann nur auf installieren, Quelltext anzeigen & abbrechen.
Mache ich installieren läuft unten ein "Alle Links mit Schlüsselwort öffnen wurde installiert" durch das Fenster und das wars.
Wenn das Greasemonkey-Script installiert wurde und URL bzw. Schlüsselwort korrekt eingetragen wurde, sollte es funktionieren, d.h. wenn du eine Seite besuchst, die dem unter URL eingetragenen Wert entspricht und sich auf der Seite Links befinden die das Schlüsselwort enthalten, sollten diese sofort in neuen Tabs geöffnet werden.
Du musst nichts noch irgendwie extra auslösen.