Signatur
Beschreibung
Die schreibgeschützte Eigenschaft window.external liefert eine Instanz der External-Schnittstelle. Früher boten Browser (vor allem der Internet Explorer und ältere Firefox-Versionen) darüber Methoden wie AddSearchProvider() und IsSearchProviderInstalled() an. Damit konnte eine Webseite dem Browser eine OpenSearch-Beschreibung als neue Suchmaschine vorschlagen.
Im WHATWG-HTML-Standard sind beide Methoden heute nur noch als wirkungslose Platzhalter definiert: AddSearchProvider() tut nichts und gibt undefined zurück, IsSearchProviderInstalled() tut ebenfalls nichts und gibt undefined zurück. Das Objekt bleibt nur erhalten, damit alter Code, der diese Methoden aufruft, keine Fehler wirft.
In neuem Code gibt es keinen sinnvollen Anwendungsfall für window.external. Soll eine Suchmaschine angeboten werden, verwendet man stattdessen ein <link rel="search" type="application/opensearchdescription+xml" href="…"> im Dokumentkopf. Die Browser erkennen den Anbieter dann selbst und bieten ihn in ihrer Oberfläche an.
Rückgabewert
External-Objekt mit den Platzhalter-Methoden AddSearchProvider() und IsSearchProviderInstalled(), die beide nichts bewirken.Beispiele
Vorhandensein und Typ prüfen
// Zeigt, dass das Objekt noch da ist, aber nichts bewirkt
console.log(typeof window.external);
console.log(Object.prototype.toString.call(window.external));
console.log(typeof window.external.AddSearchProvider);
Alter Aufruf ist heute wirkungslos
// Legacy-Code: früher öffnete das einen Dialog zum Hinzufügen einer Suchmaschine
const result = window.external.AddSearchProvider('https://example.com/opensearch.xml');
console.log(result); // kein Dialog, kein Fehler
const installed = window.external.IsSearchProviderInstalled('https://example.com');
console.log(installed);
Moderner Ersatz: OpenSearch per <link> einbinden
// Statt window.external.AddSearchProvider() den Anbieter deklarativ bekannt machen
const link = document.createElement('link');
link.rel = 'search';
link.type = 'application/opensearchdescription+xml';
link.title = 'Beispiel-Suche';
link.href = '/opensearch.xml';
document.head.append(link);
console.log(document.querySelector('link[rel="search"]').href);
// Wichtig · Fallstricke
- Veraltet:
window.externalist deprecated. Die Methoden gibt es aus Kompatibilitätsgründen noch, sie haben aber keine Wirkung mehr. Verwende sie nicht in neuem Code. - Keine Funktionserkennung: Aus
'AddSearchProvider' in window.externalkann man nicht schließen, dass die Funktion auch tatsächlich arbeitet. Die Methode ist zwar vorhanden, tut aber nichts. - Internet Explorer: Im IE diente
window.externalaußerdem als Brücke zu eingebetteten Host-Anwendungen (z. B. WebBrowser-Control mitObjectForScripting). Solcher Code läuft in modernen Browsern nicht. In WebView2 gibt es dafürwindow.chrome.webview. - Kompatibilität: Chrome, Firefox, Safari und Edge stellen das Objekt bereit. Die Methoden sind dort überall leere Platzhalter.