Ich habe einen Webdienst, der dem Client eine Datei als Array-Puffer sendet, die dann in ein Blob-Objekt eingelesen wird:
%Vor%Ich verwende ein Objekt-Tag als Container:
%Vor%Das funktioniert hervorragend in FF, Chrome, mobilen Browsern, Webbrowsern, die von fremden Spezies entwickelt wurden, die nie Kontakt mit der Menschheit hatten, etc., aber nicht im IE.
Wenn der Datenparameter des Objekt-Tags gesetzt ist, antwortet der IE in der Konsole mit
Fehler: Zugriff verweigert.
Dies scheint eine Art Sicherheitsfunktion in IE zu sein, bei der die Datei nicht als Quelle verwendet werden soll, da sie sich auf dem Clientcomputer befindet. Es verbietet den Zugriff, selbst wenn Sie Javascript verwenden, um ein neues dom-Element mit der Datenquelle zu erstellen.
Microsoft bietet eigene Blob-Methoden wie msSaveOrOpenBlob , aber Ich muss in der Lage sein, die Datei in den Browser einzubetten, nicht den Benutzer auffordern, die Datei in einer externen Anwendung zu öffnen.
Kennt jemand eine Problemumgehung oder eine Möglichkeit, den Blob, der eine große Vielfalt an Dateitypen sein kann, in IE einzubetten? Ich würde es hassen, den Web-Service und den Front-End-Code drastisch umzuformatieren, nur um IE unterzubringen, aber es sieht so aus, als müsste das der Fall sein.
Ich denke, die Antwort ist "Nein". Unsere Website generiert PDF im laufenden Betrieb, aber wir schnüffeln den Browser nach dem, was mit der zurückgegebenen PDF-Datei gemacht werden kann.
Beispiel: Ссылка
Wenn Sie in Chrome sind, können Sie hier "PDF einbetten" auswählen und es funktioniert wie ein Zauber ... Wenn Sie im IE sind, wird die Datei heruntergeladen, selbst wenn Sie "Einbetten" auswählen. Weil IE nicht kann und wir einfach jemand auf IE zum Download-Code umleiten.
Und fangen Sie nicht damit an, was am IE noch nicht stimmt, mehrere Seiten sind einfach kaputt gegangen, weil IE die End-Tags für einige "p" -Tags im Dokument nicht mehr serialisiert hat.
Tags und Links javascript internet-explorer angularjs pdf blob