Gibt es eine Möglichkeit, Befehlszeilenparameter in Google Chrome-Erweiterung zu erhalten?

9

Ich muss Chrome über die Befehlszeile mit benutzerdefinierten Parameter starten, die enthält Pfad zu einer js-Datei. Weiter wird dieser Pfad in verwendet werden Erweiterung.

Ich habe alle zugehörigen Dokumente sorgfältig durchsucht und alle Knoten in Chrome Debugger, aber nichts gefunden, die auf der Kommandozeile ähneln kann Parameter. Ist es irgendwie möglich, diese Parameter zu erhalten oder sie zu brauchen? um komplexere npapi-Erweiterungen zu schreiben? (theoretisch in solchen npapi- Erweiterung können wir selbst Prozess durch Win-API, Kommandozeile von Selbstprozess und so weiter).

    
MontyBurns 04.01.2012, 11:10
quelle

5 Antworten

4

Hack-Benachrichtigung: dieser Beitrag schlägt vor, eine gefälschte URL an Sie zu übermitteln open, das über alle Befehlszeilenparameter als Abfragezeichenfolgenparameter verfügt, z. B.

%Vor%     
dfrankow 21.02.2012 16:25
quelle
4

Grundsätzlich verwende ich die Technik, die in @ dfrankows Antwort angegeben ist, aber ich öffne 127.0.0.1:0 anstelle einer gefälschten URL. Dieser Ansatz hat zwei Vorteile:

  1. Der Namensauflösungsversuch wird übersprungen. OK, wenn ich die gefälschte URL sorgfältig gewählt habe, um das Öffnen einer bestehenden URL zu vermeiden, würde die Namensauflösung mit Sicherheit fehlschlagen. Aber das ist nicht nötig, also warum nicht einfach diesen Schritt überspringen?
  2. Kein Server überwacht den TCP-Port 0 . Die Verwendung von 127.0.0.1 ist nicht genug, da es möglich ist, dass ein Webserver auf dem Client-Computer ausgeführt wird und die Erweiterung keine Verbindung herstellen soll dazu zufällig. Also muss ich eine Portnummer angeben, aber welche? Port 0 ist die perfekte Wahl: Laut RFC 1700 ist diese Portnummer "reserviert", das heißt Server dürfen sie nicht benutzen.

Beispiel für eine Befehlszeile zum Übergeben der Argumente abc und xyz an Ihre Erweiterung:

%Vor%

Sie können diese Argumente in background.js auf diese Weise lesen:

%Vor%

Konsolenausgabe (in der Konsole der Hintergrundseite der Erweiterung):

%Vor%     
kol 09.04.2014 10:20
quelle
4

Übergeben Sie den Pfad zu Ihrer Erweiterung möglicherweise in einem benutzerdefinierten User-Agent-String, der über die Befehlszeile festgelegt wurde. Zum Beispiel:

%Vor%

Dann in Ihrer Erweiterung:

%Vor%     
Jimadine 15.07.2015 16:28
quelle
1

Sie könnten versuchen:

%Vor%

Dies setzt voraus, dass Sie jQuery in Ihrer Ladesequenz verwenden, Sie könnten sie immer mit einer anderen AJAX-Methode ersetzen

    
Bloafer 23.04.2012 16:24
quelle
0

Neben den obigen Antworten zur Verwendung der URL zum Übergeben von Parametern beachten Sie, dass nur Erweiterungen, nicht Apps, dies tun können. Ich habe eine Chrome-Erweiterung veröffentlicht, die nur die URL abfängt und für eine andere App verfügbar macht.

Zypern

Der Quellcode ist verfügbar unter:

Ссылка

für öffentliche WLAN-Bildschirme

    
Trevor Cox 23.11.2015 17:06
quelle