6
votes

PDF Viewer à l'aide de la balise d'objet ne fonctionne pas pour le bord

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: xxx

plunker: http://plnkr.co/edit/wh9eccwkx3vhfv43xto5?p=preview

Qu'est-ce qu'un bon moyen d'afficher la visionneuse PDF à bord? Merci pour votre aide.


2 commentaires

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


3 Réponses :


3
votes

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.

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.


2 commentaires

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> <.



2
votes

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>


2 commentaires

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



3
votes

J'ai remplacé la valeur de l'attribut type avec text / html . xxx

Cette méthode fonctionne pour bord et IE11.
La réponse de la demande contient HTML: xxx

bord et IE11 peut-être vérifier le contenu de la réponse et le bloquer car ce n'est pas un fichier PDF ...
Le PDF est dans la réponse de la réponse.

SET TYPE à TEXT / HTML Dans cette situation fonctionne pour moi sur ces navigateurs: < / p>

  • firefox
  • chrome
  • IE11
  • bord
  • Opera

    Je n'essaye pas sur Safari.

    J'espère que cette réponse vous a aidé et que mon anglais ne vous a pas dérangé trop


0 commentaires