javascript - Trenger å åpne blob/PDF i IE-vindu
Jeg har koden nedenfor i TypeScript for å kalle en web-API-metode og hente et binært byte-array (blob) som er en PDF. Brukerkravet mitt er å åpne PDF-en i et nytt vindu.
$scope.selectRow = (itemImageNumber: string, printProcessId: string, printXmlId: string) => {
itemService.GetOutgoingDocument($scope.item.ItemId, itemImageNumber, printProcessId, printXmlId).success((response) => {
var file = new Blob([response], { type: 'application/pdf' });
var fileUrl = URL.createObjectURL(file);
//$scope.outDocContent = $sce.trustAsResourceUrl(fileUrl);
var win = window.open($sce.trustAsResourceUrl(fileUrl));
win.focus();
}).error(() => {
var message =
"The document you selected can’t be displayed at this time. Please call Customer Service at xxx-xxx-xxxx for assistance.";
$rootScope.$broadcast("app-message", {
type : "danger",
message : message
});
});
}
Denne koden fungerer bra i Chrome. Dokumentet åpnes som forventet. IE derimot spør «Vil du tillate at dette nettstedet åpner en app på datamaskinen din?» og når det tillates, sier den «Ingen apper er installert for å åpne denne typen lenke (blob)».
Noen ideer om hvordan man kan åpne dette i en ny fane eller lagre blobben som en fil som en siste utvei?
Svar #1
Grunnen til at det fungerer i Chrome og andre vanlige nettlesere: de har en PDF-forhåndsvisning installert inni dem.
Leieavtalen hvorfor den ikke fungerer i IE: siden i arkitektur, hvis IE, bør det være et PDF-leseprogram installert på operativsystemet; for eksempel, hvis du har Adobe Acrobat installert, vil du åpne det uten problemer.
Jeg kan anbefale deg å bruke: pdf.js/.