web-dev-qa-db-fra.com

La fenêtre n'est pas autorisée à naviguer dans les navigations du haut vers les URL de données

Le code suivant permettait d'ouvrir un fichier pdf dans une nouvelle fenêtre.

var pdfDocument = "data:application/pdf;base64," + data;
window.open(pdfDocument);

Après la mise à jour de chrome, il semble cesser de fonctionner. Apparemment, chrome a supprimé les navigations du haut vers les URL de données.

Comment puis-je résoudre mon problème maintenant? J'ai besoin d'ouvrir ce pdf dans une nouvelle fenêtre. Toute aide serait appréciée.

METTRE À JOUR

Résolu en utilisant iFrame. Merci à Pedro de m'avoir donné cette idée.

<iframe id="ManualFrame"
        frameborder="0"
        style="border:0"
        allowfullscreen>
</iframe>

<script>
    $(function () {
        setManualFrame();
    });

    function setManualFrame() {
        $("#ManualFrame").attr("height", screen.height);
        $("#ManualFrame").attr("width", screen.width);
        $("#ManualFrame").attr("src", "data:application/pdf;base64," + '@ViewBag.pdf_base64_data');
    }
</script>
6
Lonely Planeteer

Déprécations et suppressions dans Chrome 60:

Supprimer les navigations du cadre supérieur initiées par le contenu vers les URL de données

En raison de leur méconnaissance des utilisateurs non techniques du navigateur, nous voyons de plus en plus de données: un schéma utilisé dans les attaques d'usurpation d'identité et de phishing. Pour empêcher cela, nous bloquons les pages Web à charger des données: URL dans le cadre supérieur. Cela s'applique aux balises, window.open, window.location et mécanismes similaires. Le schéma data: fonctionne toujours pour les ressources chargées par une page.

Cette fonctionnalité était obsolète dans Chrome 58 et est maintenant supprimée.

Source: https://developers.google.com/web/updates/2017/06/chrome-60-deprecations

2
Cafer Can Arslan