2017-11-15 8 views
0

Ich habe eine Chrome-Erweiterung installiert, die den Pandora-Client in einer Web-Erweiterung (Anesidora) abspielt, es funktioniert einwandfrei, aber ich finde einfach keine Möglichkeit, diese Erweiterung in einem eigenen Fenster zu öffnen.Wie öffne ich eine Chrome-Erweiterung in einem eigenen Fenster?

Ich muss den Chrome-Browser starten, klicken Sie auf die Erweiterung neben der Adressleiste, und klicken Sie dann auf die Erweiterung, und sobald ich wegklicke, verschwindet die Musik-Erweiterung, ich muss auf die Erweiterung klicken und betrachte meine Musiksteuerung erneut.

Gibt es eine Möglichkeit, das Verhalten der JSON-Datei oder popup.html oder sogar backgroud.html Seite zu aktualisieren, damit diese ganz von selbst betrachtet werden auf einer Seite, oder was?

Pandora music player extension screenshot

Antwort

2

Wenn ich Sie richtig verstanden habe Sie müssen nur die URL des popup.html. Klicken Sie mit der rechten Maustaste auf die Player-Steuerelemente, wählen Sie Inspect und geben Sie location.href in die Konsole ein. Auf diese Weise erhalten Sie die URL des Popups, mit dem Sie die Steuerelemente in einem neuen Browserfenster öffnen können.

+0

Dies ist in der Tat eine gute Methode für eine Erweiterung des dritten Teils, die Sie nicht geschrieben haben, obwohl einige Code möglicherweise brechen. – Xan

+0

Vielen Dank! Mr. #McSod - das ist sehr hilfreich. – BuddhaPie

0

Vorhandene answer von McSod umfasst eine nicht-invasive Methode, um ein Popup einer Drittanbieter-Erweiterung zu öffnen.

Wenn Ihr Ziel ist es, dauerhaft eine Erweiterung so zu ändern, dass der Klick stattdessen ein separates Fenster öffnet sich, und unter der Annahme, dass die Popup-Seite nicht über die gesamte Lebensdauer der Erweiterung ändert, das heißt:

  1. Es Set von browser_action.default_popup im Manifest (angenommen "popup.html")
  2. Nichts in den Erweiterungscode ruft chrome.browserAction.setPopup auf, um es zu ändern.

Unter diesen Bedingungen müssen Sie zwei Aktionen ausführen: vom Manifest

  1. Entfernen Sie die default_popup Schlüssel.
  2. Ändern Sie die Hintergrundskript (oder man hinzufügen, falls erforderlich - mit "persistent": false wenn das die einzige Funktion ist), den Klick zu handhaben:

    chrome.browserAction.onClicked.addListener(tab => { 
        chrome.windows.create({ 
        url: chrome.runtime.getURL("popup.html"), 
        type: "popup", 
        focused: true, 
        /* can also set width/height here, see docs */ 
        }); 
    }); 
    

Das sind die einfachsten Änderungen. Sie können Code hinzufügen, der nach dem Vorhandensein eines bereits geöffneten Fensters sucht und diesen stattdessen neu fokussiert.

Beachten Sie, dass abhängig von der Funktion des Popup, Annahmen in seinem Code (am wahrscheinlichsten, Verwendung von tabs API) kann brechen, denn es wird das "aktuelle Registerkarte/Fenster" für sich selbst anstelle der Seite, auf der die Taste wurde geklickt.

+0

Danke! Xan, für Ihre schnelle Antwort. Ihre Lösung ist etwas detaillierter geworden, und ich schätze Ihre Antwort sehr. Genau das, wonach ich gesucht habe. Daumen hoch! – BuddhaPie

Verwandte Themen