Gibt es eine Möglichkeit festzustellen, ob ein Browser die Verwendung von Daten-URIs für Hyperlinks neben dem Browser-Sniffing unterstützt?So ermitteln Sie, ob der Browser Daten-URIs für Hyperlinks unterstützt
Hier ist der Kontext:
ich einen Link zu erwecken, dass entweder lädt eine CSV-Datei mit Informationen über JavaScript erzeugen ein praktischen Daten URI oder, wenn der Browser nicht unterstützt die Verwendung von Daten-URIs für Hyperlinks, generiert eine HTML-Tabelle des gewünschten Inhalts.
Im Moment überprüft mein Code die Existenz der window.URL
Eigenschaft, die nicht in IE9 und darunter existiert. (Dies funktioniert für jetzt in Ordnung, weil der IE-Benutzer muß ich läuft im Kompatibilitätsmodus unterstützen, die IE8 emuliert.)
if(window.URL){
downloadLink.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
downloadLink.setAttribute("download","download.csv");
}else{
downloadLink.href= "#";
downloadLink.innerHTML = "table view";
downloadLink.onclick = function(){
// build and display HTML table
return false;
};
}
Allerdings gibt es einige Überschneidungen mit neueren Versionen von Internet Explorer (10, 11, sowie Edge), dass sie das window.URL-Objekt unterstützen, aber nicht erlauben Daten-URIs für Hyperlinks.
Wie stelle ich sicher, dass der Link zum Herunterladen einer CSV-Datei niemals in einem Browser angezeigt wird, der solche Verfeinerungen nicht unterstützt?
Siehe http://stackoverflow.com/questions/836777/how-to-detect-browsers-protocol-handlers, http://stackoverflow.com/questions/24779312/simplest-cross-browser-check-if- Protokoll-Handler-is-registriert – guest271314