Chrome-Erweiterung, um Nutzer auf bestimmte URLs umzuleiten

Ich möchte eine Chrome-Erweiterung erstellen, die im Wesentlichen überprüft, ob die aktuelle Domäne in einer Liste ist, wenn das den Benutzer auf eine andere URL umleitet, ihn auf einen Link klickt und dann zu der ursprünglich gewünschten URL geht.

Ich habe nicht viel Erfahrung mit Javascript oder Chrome-Erweiterungen, aber das scheint einfach genug für ein Starter-Projekt.

Ich möchte eine Datei dieser Struktur haben

urlregex1#redirecttourl1
urlregex2#redirecttourl2
.
.
.

und ein chrome content_script parsen jede URL und überprüfen, ob einer der regulären Ausdrücke übereinstimmt.

Wenn ja, muss das Skript die ursprüngliche URL irgendwie speichern und dann den Benutzer umleiten.

Kann mir jemand in die richtige Richtung gehen, um das umzusetzen? Ich bin total zwischen Javascript-Funktionen verloren, Chrome Erweiterung API, ....

0
Hallo Kai, kannst du mehr erklären, wie du das gemacht hast, ich bin im Grunde ein mobiler Entwickler, der sehr wenig Erfahrung in Javascript hat. Dies wird mein erstes Plugin sein. Kannst du mir dabei helfen?
hinzugefügt der Autor DAMM108, Quelle

1 Antworten

Sie müssen die Funktionalität auf Ihrer Hintergrundseite einrichten, damit sie auf allen Registerkarten ausgeführt wird.

// add listener for all tabs
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var safesite = false;

    if (changeInfo === "loading") {
       //logic for checking white list, using tab.url

        if (!safesite) {
            chrome.tabs.update(tabId, { url: 'www.google.com' });
        }
    }
});

Im Wesentlichen fügen Sie allen Registerkarten einen Ereignis-Listener hinzu. Beim Laden überprüfen Sie, ob es auf der weißen Liste ist. Wenn es eine Black-List-Website ist, leiten Sie sie zu der URL, die Sie möchten, um. Sie können auch eine .html-Datei in das Erweiterungsverzeichnis einfügen, um sie ebenfalls umzulenken. Dies wird auf allen Registerkarten, einschließlich des Web Inspectors, ausgelöst. Daher sollten Sie möglicherweise eine Logik einfügen, um nur HTTP-Anfragen zu prüfen.

Außerdem könnte dieser Ansatz die schwarz gelistete Seite kurz anzeigen und Sie dann zur Seite blocked_url.html weiterleiten. Die experimentelle API webRequest sollte die Möglichkeit bieten, die Anfrage BEFORE zu filtern Laden Sie die Seite, aber Sie können diese nicht in den Chrome Web Store hochladen, bis sie Teil der offiziellen Chrome-API wird. Wenn es für den persönlichen Gebrauch ist, dann fühlen Sie sich frei, es zu benutzen.

Ein letzter Tipp für die Entwicklung: Sie können die Hintergrund.html nur über die Einstellungsseite für Erweiterungen (chrome://settings/extensionSettings) debuggen. Öffnen Sie den Drilldown für Ihre Erweiterung und Sie sehen "Aktive Sichten prüfen": Hier können Sie auf einen Link zu extensionsspezifischen Seiten klicken, die Sie gerade ausführen. Dadurch wird der Web Inspector für diese Seite aufgerufen.

Nach viel Kopfkratzen bin ich zufällig darauf gestoßen und seitdem ist es lebensrettend.

4
hinzugefügt
Danke, das war genau die Information, nach der ich gesucht habe!
hinzugefügt der Autor Kai, Quelle
JavaScript - Deutsche Gemeinschaft
JavaScript - Deutsche Gemeinschaft
3 der Teilnehmer

In dieser Gruppe sprechen wir über JavaScript.