Häufig gestellte Fragen

Falls Sie hier keine Antwort auf Ihre Frage finden, lesen Sie die FAQs zum Chrome Web Store, die [google-chrome-extension]-Tag auf Stack Overflow, der Chromium-extensions-Gruppe oder der Shop-Hilfe.

Allgemein

Was sind Google Chrome-Erweiterungen?

Google Chrome-Erweiterungen sind Anwendungen, die im Chrome-Browser ausgeführt werden und zusätzliche Funktionen, Integration in Websites oder Dienste von Drittanbietern und benutzerdefiniertes Surfen User Experiences.

Wie richte ich Chrome für die Entwicklung von Erweiterungen ein?

Solange Sie eine Version von Chrome verwenden, die Erweiterungen unterstützt, verfügen Sie bereits über alles. müssen Sie eine eigene Erweiterung schreiben. Aktivieren Sie als Erstes den Entwicklermodus.

Klicken Sie auf das Chrome-Menüsymbol und wählen Sie im Menü Tools die Option Erweiterungen aus. Stellen Sie sicher, dass den „Entwicklermodus“ rechts oben ein Häkchen gesetzt ist. Sie können die Seite jetzt aktualisieren, Erweiterungen, ein entpacktes Dateiverzeichnis wie eine gepackte Erweiterung laden usw. Für eine vollständiges Tutorial finden Sie unter Erste Schritte.

Welche Technologien werden verwendet, um Erweiterungen für Chrome zu entwickeln?

Erweiterungen werden mit denselben Standard-Webtechnologien geschrieben, mit denen Entwickler Websites. HTML wird als Inhalts-Auszeichnungssprache, CSS für Stile und JavaScript für Scripting. Da Chrome HTML5 und CSS3 unterstützt, können Entwickler das neueste wie Canvas- und CSS-Animationen in ihren Erweiterungen. Erweiterungen haben auch Zugriff auf verschiedene JavaScript APIs, die bei Funktionen wie der JSON-Codierung und der Interaktion mit im Browser.

Werden Erweiterungen bei jedem Laden des Browsers aus dem Web abgerufen?

Erweiterungen werden bei der Installation vom Chrome-Browser heruntergeladen und anschließend über die auf der lokalen Festplatte, um die Leistung zu erhöhen. Wird jedoch eine neue Version der Erweiterung online ist, wird sie automatisch im Hintergrund an alle Nutzer heruntergeladen, die die Erweiterung installiert haben. installiert haben. Erweiterungen können auch jederzeit Remote-Inhalte anfordern, um mit diesen mit einem Webdienst verknüpfen oder neue Inhalte aus dem Web abrufen.

Wie finde ich heraus, welche Chrome-Version für welche Version bereitgestellt wird?

Um herauszufinden, welche Chrome-Version derzeit auf den verschiedenen Plattformen verfügbar ist, Rufen Sie omahaproxy.appspot.com auf. Auf dieser Website sehen Sie Daten in einem Format, das dem folgenden ähnelt:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

Jede Zeile enthält Informationen zu einer anderen Kombination aus Plattform und Kanal. Die aufgeführten Plattformen sind cf (Google Chrome Frame), linux, mac, win und cros (Google ChromeOS). Die Die aufgeführten Kanäle sind canary, dev, beta und stable. Die beiden vierteiligen Zahlen nach dem stellen die aktuelle und vorherige Version von Chrome dar, die auf diesem Plattformkanal bereitgestellt wurden. Kombination. Die übrigen Informationen sind Metadaten zum Zeitpunkt der ersten Veröffentlichung. sowie die Versionsnummern der einzelnen Builds.

Leistungsspektrum

Können Erweiterungen domainübergreifende Ajax-Anfragen senden?

Ja. Erweiterungen können domainübergreifende Anfragen senden. Weitere Informationen finden Sie auf dieser Seite.

Können Erweiterungen Webdienste von Drittanbietern verwenden?

Ja. Erweiterungen sind in der Lage, domainübergreifende Ajax-Anfragen zu senden und so Remote-APIs aufzurufen. . APIs, die Daten im JSON-Format bereitstellen, sind besonders nutzerfreundlich.

Können Erweiterungen JSON-Daten codieren/decodieren?

Ja. Da V8, die JavaScript-Engine von Chrome, JSON.stringify und JSON.parse nativ unterstützt, können Sie diese Funktionen in Ihren Erweiterungen verwenden, wie hier beschrieben, ohne zusätzliche JSON-Bibliotheken in Ihrem Code.

Können Erweiterungen Daten lokal speichern?

Ja. Erweiterungen können localStorage verwenden, um Stringdaten dauerhaft zu speichern. Mit der integrierten Chrome-Erweiterung Mit JSON-Funktionen können Sie komplexe Datenstrukturen in localStorage speichern. Für Erweiterungen, die SQL-Abfragen der gespeicherten Daten auszuführen, implementiert Chrome clientseitige SQL-Datenbanken, können ebenfalls verwendet werden.

Können Erweiterungen OAuth verwenden?

Ja, es gibt Erweiterungen, die OAuth für den Zugriff auf Remote-Daten-APIs verwenden. Die meisten Entwickler finden es ist es praktisch, eine JavaScript-OAuth-Bibliothek zu verwenden, um das Signieren von OAuth zu vereinfachen. -Anfragen.

Können Erweiterungen Benutzeroberflächen außerhalb der gerenderten Webseite erstellen?

Ja. Ihre Erweiterung kann der Benutzeroberfläche des Chrome-Browsers Schaltflächen hinzufügen. Siehe Browser Aktionen und Seitenaktionen.

Erweiterungen können auch Pop-up-Benachrichtigungen erstellen, die außerhalb des Browserfensters angezeigt werden. Weitere Informationen finden Sie in der Desktop-Benachrichtigungen.

Können Erweiterungen Klicks auf Chrome-Tabs und Navigationsschaltflächen erfassen?

Nein. Erweiterungen überwachen nur die in der API-Dokumentation beschriebenen Ereignisse.

Können zwei Erweiterungen miteinander kommunizieren?

Ja. Erweiterungen können Nachrichten an andere Erweiterungen weiterleiten. Weitere Informationen finden Sie in der Dokumentation zur Nachrichtenübergabe. .

Können Erweiterungen Google Analytics nutzen?

Ja. Erweiterungen werden wie Websites erstellt. Daher können Sie damit Google Analytics erfassen, Nutzung. Sie müssen jedoch den Tracking-Code ändern, um eine HTTPS-Version der Google Analytics- Bibliothek. Weitere Informationen hierzu finden Sie in dieser Anleitung.

Können chrome://-URLs durch Erweiterungen geändert werden?

Nein. Die Extensions APIs wurden entwickelt, um mögliche Abwärtskompatibilitätsprobleme zu minimieren. wenn neue Browserversionen veröffentlicht werden. Das Zulassen von Inhaltsskripten für chrome:// URLs bedeutet dass Entwickler zukünftig auf das DOM, den CSS- und JavaScript-Code dieser Seiten angewiesen werden, um unverändert zu bleiben. Im besten Fall können diese Seiten nicht so schnell aktualisiert werden, wie sie gerade aktualisiert werden. Im schlimmsten Fall könnte eine Aktualisierung einer dieser Seiten dazu führen, dass eine Erweiterung . Dies führt dazu, dass wichtige Teile des Browsers für Nutzer dieser Erweiterung nicht mehr funktionieren.

Das Ersetzen der Inhalte, die unter diesen URLs gehostet werden, ist zulässig, zwingt einen Erweiterungsentwickler, alle gewünschten Funktionen zu implementieren, die interne Implementierung des Browsers.

Können durch Erweiterungen Pop-ups für Browser- oder Seitenaktionen ohne Nutzerinteraktion geöffnet werden?

Nein. Pop-ups können nur geöffnet werden, wenn der Nutzer auf die entsprechende Seite oder Browseraktion klickt. Eine Erweiterung das Pop-up der Erweiterung nicht programmatisch öffnen kann.

Können bei Erweiterungen Pop-ups geöffnet bleiben, wenn der Nutzer darauf klickt?

Nein. Pop-ups werden automatisch geschlossen, wenn sich der Nutzer auf einen Bereich des Browsers außerhalb des Pop-up-Fenster. Das Pop-up-Fenster kann nicht geöffnet bleiben, nachdem der Nutzer weggeklickt hat.

Können Erweiterungen benachrichtigt werden, wenn sie installiert/deinstalliert werden?

Sie können das Ereignis runtime.onInstalled beobachten, um benachrichtigt zu werden, wenn Ihre Erweiterung installiert oder aktualisiert werden oder wenn Chrome selbst aktualisiert wird. Es gibt kein entsprechendes Ereignis für den Zeitraum Ihre Erweiterung deinstalliert ist.

Entwicklung

Wie erstelle ich eine Benutzeroberfläche für meine Erweiterung?

Die Benutzeroberflächen von Erweiterungen werden mit HTML und CSS definiert, sodass Sie die standardmäßigen Formularsteuerelemente verwenden können. um Ihre Benutzeroberfläche zu erstellen oder die Benutzeroberfläche wie bei einer Webseite mit CSS zu gestalten. Außerdem können Erweiterungen kann einige eingeschränkte UI-Elemente zu Chrome selbst hinzufügen.

Wie viele Daten kann ich in localStorage speichern?

Erweiterungen können bis zu 5 MB an Daten in localStorage speichern.

Wie erstelle ich ein Optionsmenü für meine Anwendung?

Sie können zulassen, dass Nutzer Optionen für die Erweiterung festlegen, indem Sie eine Optionsseite erstellen. einfache HTML-Seite, die geladen wird, wenn ein Nutzer auf die Schaltfläche „Optionen“ klickt Schaltfläche für die Erweiterung. Diese Seite kann Einstellungen in localStorage lesen und schreiben oder Optionen sogar an einen Webserver senden, damit können sie browserübergreifend beibehalten werden.

Welche Debugging-Tools stehen Entwicklern von Erweiterungen zur Verfügung?

Mit den integrierten Entwicklertools von Chrome können Sie Fehler in Erweiterungen und auf Webseiten beheben. Ansehen Anleitung zum Debuggen von Erweiterungen.

Warum funktionieren Platzhalterübereinstimmungen für Top-Level-Domains (TLDs) nicht?

Sie können keine Platzhalter-Übereinstimmungsmuster wie http://google.*/* für den Abgleich mit TLDs wie http://google.es und http://google.fr), da die Einschränkung mit den gewünschten Domains übereinstimmen.

Im Beispiel http://google.*/* werden die Google-Domains zugeordnet, aber das wäre auch der Fall. http://google.someotherdomain.com. Außerdem besitzen viele Websites nicht alle TLDs für ihre . Angenommen, Sie möchten z. B. http://example.*/* verwenden, um http://example.com abzugleichen. und http://example.es, http://example.net ist jedoch eine feindliche Website. Wenn Ihre Erweiterung einen Fehler enthält, könnte die feindliche Website Ihre Erweiterung angreifen, um Zugriff auf die mehr Berechtigungen.

Sie sollten explizit die TLDs auflisten, auf denen Ihre Erweiterung ausgeführt werden soll.

Warum löst die Verwaltungs-API keine Ereignisse aus, wenn meine Erweiterung installiert/deinstalliert ist?

Die Verwaltungs-API war dazu gedacht, Erweiterungen für den Austausch auf der neuen Tabseite zu erstellen. Nein Installations-/Deinstallationsereignisse für die aktuelle Erweiterung auslösen sollen.

Wie kann eine Erweiterung feststellen, ob sie zum ersten Mal ausgeführt wird?

Sie können auf das Ereignis runtime.onInstalled warten. Weitere Informationen finden Sie in diesem FAQ-Eintrag.

Funktionen und Fehler

Ich glaube, ich habe einen Fehler gefunden! Wie kann ich sicherstellen, dass das Problem behoben wird?

Bei der Entwicklung einer Erweiterung kann es zu einem Verhalten kommen, das nicht mit den Erweiterungen übereinstimmt Dokumentation und kann das Ergebnis eines Programmfehlers in Chrome sein. Achten Sie am besten darauf, Es wird ein entsprechender Problembericht eingereicht und das Chromium-Team hat genügend Informationen, um das Problem verhalten.

So sorgen Sie dafür, dass dies folgende Voraussetzungen erfüllt:

  1. Erstellen Sie zu Testzwecken eine minimale Erweiterung, mit der das Problem veranschaulicht wird, das Sie melden möchten. Dieses sollte so wenig Code wie möglich zur Darstellung des Fehlers enthalten. Im Allgemeinen Maximal 100 Codezeilen. Oft stellen Entwickler fest, dass sie ihre Probleme nicht reproduzieren können. Dies ist ein guter Indikator dafür, dass der Fehler im eigenen Code liegt.
  2. Suchen Sie im Issue Tracker unter http://crbug.com, um zu sehen, ob jemand einen ähnlichen Fehler gemeldet hat. Problem. Die meisten Probleme im Zusammenhang mit Erweiterungen sind unter component=Platform>Extensions aufgeführt. um nach einem Erweiterungsfehler zu suchen (z. B. im Zusammenhang mit der Funktion chrome.tabs.executeScript), nach "component=Platform>Extensions Type=Bug chrome.tabs.executeScript" suchen, sodass dieser Ergebnisliste.
  3. Wenn Sie einen Fehler finden, der Ihr Problem beschreibt, klicken Sie auf das Sternsymbol, um über den Fehler informiert zu werden. erhält ein Update. Reagiere nicht auf den Programmfehler, um „Ich auch“ zu sagen. oder fragen Sie „Wann wird das behoben?“ können Hunderte von E-Mails versendet werden. Füge einen Kommentar nur hinzu, wenn du Informationen (z. B. einen besseren Testlauf oder eine vorgeschlagene Lösung), die hilfreich sein könnten.
  4. Wenn Sie keinen passenden Fehler gefunden haben, reichen Sie einen neuen Problembericht unter http://crbug.com/new ein. Formulieren Sie das Formular so verständlich wie möglich: Wählen Sie einen aussagekräftigen Titel, um den Fehler zu reproduzieren und das erwartete und tatsächliche Verhalten zu beschreiben. Test anhängen Beispiel und fügen Sie bei Bedarf Screenshots hinzu. Je einfacher es im Bericht ist, um Ihr Problem zu reproduzieren, desto wahrscheinlicher ist es, dass Ihr Fehler umgehend behoben wird.
  5. Warten Sie, bis der Fehler aktualisiert wurde. Die meisten neuen Fehler werden innerhalb einer Woche gesichtet, kann ein Update länger dauern. Antworten Sie nicht auf den Programmfehler, um zu fragen, wann das Problem auftritt. behoben. Falls Ihr Fehler nach zwei Wochen noch nicht geändert wurde, posten Sie bitte eine Nachricht an die Diskussionsgruppe mit einem Link zum Fehler.
  6. Wenn Sie Ihren Fehler ursprünglich in der Diskussionsgruppe gemeldet und zu diesem FAQ-Eintrag weitergeleitet wurden, auf den ursprünglichen Thread antworten und dabei einen Link zu dem Fehler angeben, den Sie markiert oder gemeldet haben. So können Sie einfacher ist, den richtigen Fehler zu finden.

Ich habe eine Funktionsanfrage. Wie kann ich das melden?

Wenn Sie eine Funktion entdecken (insbesondere wenn es sich um ein experimentelles API handelt), die zum die Entwicklung von Erweiterungen zu verbessern, achten Sie darauf, dass im Problem eine entsprechende Anfrage gestellt wird. Tracker.

So sorgen Sie dafür, dass dies folgende Voraussetzungen erfüllt:

  1. Suchen Sie im Issue Tracker unter http://crbug.com, um festzustellen, ob jemand einen eine ähnliche Funktion haben. Die meisten Anfragen in Bezug auf Erweiterungen finden Sie unter component=Platform>Extensions, um nach einer Funktionsanfrage für eine Erweiterung zu suchen, die sich auf Tastaturkürzel verwenden (z. B.), suchen Sie nach Unter "component=Platform>Extensions Type=Feature shortcuts" finden Sie diese Liste mit Ergebnisse.
  2. Wenn du ein passendes Ticket findest, klicke auf das Sternsymbol, um über den Fehler informiert zu werden. erhält ein Update. Reagiere nicht auf den Programmfehler, um „Ich auch“ zu sagen. oder fragen Sie „Wann wird das implemented?"; können Hunderte von E-Mails versendet werden.
  3. Wenn Sie kein passendes Ticket zum Markieren gefunden haben, reichen Sie eine neue Anfrage unter http://crbug.com/new ein. Seien Füllen Sie dieses Formular so detailliert wie möglich aus: Wählen Sie einen aussagekräftigen Titel und erläutern Sie, welche Funktion Sie sich wünschen und wie Sie diese nutzen möchten.
  4. Warten Sie, bis das Ticket aktualisiert wurde. Die meisten neuen Anfragen werden innerhalb einer Woche gesichtet, kann ein Update länger dauern. Antworten Sie nicht auf das Ticket, um zu fragen, wann die Funktion verfügbar sein wird. hinzugefügt. Sollte dein Ticket nach zwei Wochen noch nicht geändert worden sein, sende bitte eine Nachricht an die Diskussionsgruppe mit einem Link zu Ihrer Anfrage.
  5. Wenn Sie Ihre Anfrage ursprünglich in der Diskussionsgruppe gemeldet und zu dieser FAQ-Seite weitergeleitet wurden, eingeben, antworten Sie auf Ihre ursprüngliche Konversation mit einem Link zu dem Ticket, das Sie markiert oder geöffnet haben. Dadurch wird können andere, die dieselbe Anfrage senden, das richtige Ticket einfacher finden.