J'essaie d'afficher un document PDF en ligne à l'aide de la balise d'objet - cela fonctionne comme prévu dans Chrome et Firefox mais ne fonctionne pas à bord.
échantillon code: p> plunker: http://plnkr.co/edit/wh9eccwkx3vhfv43xto5?p=preview p> Qu'est-ce qu'un bon moyen d'afficher la visionneuse PDF à bord? Merci pour votre aide. P> p>
3 Réponses :
J'ai fait face à un problème similaire. La balise d'objet se comporte différemment dans IE et Edge; Le sévère doit accepter la demande de tête effectuée par la balise d'objet (Demande de tête: uniquement dans IE & Edge) et donner une réponse, une demande d'obtention est faite pour récupérer le fichier. Ceci est une limitation des navigateurs de Microsoft. p>
EDIT 1: Ceci a fonctionné pour moi (bord et c.-à-d.) Si j'ajoute la balise d'objet HTML avec l'URL de l'attribut Data au lieu de définir la valeur d'attribut, à l'aide de JavaScript, de la balise d'objet qui est déjà sur le dom. Veuillez noter que j'ai une réponse de rinçage de point de terminaison, cela met à jour la valeur de l'attribut de données. p>
J'ai également essayé cela également, en utilisant un knock-out si la liaison de données et que je ne le réglage que sur true après la population de l'élément de données d'objet et ne fait toujours rien afficher. Pouvez-vous montrer un exemple de votre tag?
Je l'ai eu pour travailler en utilisant des liaisons Knockout avec d'autres navigateurs et jQuery avec IE / Edge> <.
Changer les données ne fonctionnera pas à bord jusqu'à ce que le bogue soit corrigé. J'ai trouvé une solution de contournement pour supprimer l'élément et ajouter un nouvel élément à son parent. Ce n'est peut-être pas pour chaque situation, mais cela fonctionne pour moi.
p>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script type="text/javascript"> function loadPdf() { var viewer = document.getElementById("ScanPdf"); var parent = viewer.parentElement; var newViewer = document.createElement("object"); viewer.remove(); newViewer.setAttribute("data", "your new url here"); newViewer.style = oldStyle; parent.appendChild(newViewer); } </script> </head> <body> <object width="1080" height="1080" id="ScanPdf" data="old url here" type="application/pdf" scanitemid="2317">ffff</object> <button onclick="loadPdf()">LOAD PDF</button> </body> </html>
Plus élégant serait de faire le suivant: const Newviewer = Viewer.clonenode (); Viewer.replacewith (NewViewer);
Référence non capturéeError: Oldstyle n'est pas défini
J'ai remplacé la valeur de l'attribut type avec text / html strong>. Cette méthode fonctionne pour bord et IE11. bord et IE11 peut-être vérifier le contenu de la réponse et le bloquer car ce n'est pas un fichier PDF ... SET Je n'essaye pas sur Safari. P> J'espère que cette réponse vous a aidé et que mon anglais ne vous a pas dérangé trop p> p>
La réponse de la demande
Le PDF est dans la réponse
Quelle version du bord utilisez-vous? Je suis capable de visualiser des PDF incorporés dans Microsoft Edge 37.14316.1000.0. Voyez ici: i.Stack.imgur.com/54diu.png
Avez-vous déjà compris cela? J'ai toujours des problèmes