2017-08-29 28 views
3

最近のChromeのアップデートにより、データURLが直接java.netを使用して開かれることが防止されているため、「トップフレームからデータURLへの移動が許可されていません。変更する。私はmPDFを使用してPDFを生成し、それを元の64に戻し、新しいタブで開く必要があるajax呼び出しを持っています。これは常に働いた。しかし、この問題のために、私がやろうとしていることは、エラーを避けるためにPDFをiFrameに新しいウィンドウで読み込むことです。それがうまくいけば、ここに私が持っているものがあります:Google Chrome - PDF iFrameでダウンロードできない

$('.print-order-pdf').click(function(){ 

    var orderNumber = $(this).attr('order') 
    var data = { 
     pdfnonce: pdfAjax.pdfnonce, 
     action: 'getOrderPDF', 
     orderNumber: orderNumber, 
    } 
    var win = window.open('', '_blank'); 
    $.post(pdfAjax.ajax_url, data, function(return_url){   
     win.document.write("<iframe id='pdf' src='"+ return_url +"'></iframe>"); 
     win.document.write("<style> html, body{ overflow:hidden; margin:0; } #pdf{ width:100%; height: 100%; }</style>"); 
    }); 

}); 

(これはワードプレスのAjax呼び出しです)。いずれにしても、すべて動作し、PDFを含む新しいページが開きます。問題は、 - Chromeでは、PDFコントロールの一部として表示されるダウンロードリンクが機能しなくなりました。私は印刷、回転、何でも - ファイルをダウンロードすることはできません。私はFirefoxでテストしましたが、そこにダウンロードを引き起こす問題はありません。 PDFウィンドウ用のChromeコンソールにエラーは一切表示されません。何か案は? Chromeには、iFrame内からのダウンロードを妨げる特定のものがありますか?どうして?その周りに道がありますか?

ありがとうございます。

+0

私はこれを再現できません(60個の安定したものと62個のカナリア、mac)。 –

+0

ええええええええええええええええええええええええええええええええええええええええええええばん - 私は60の安定性を使用していて、ここで他の人たちも試してみました。だから私はこのタブをトリガーしている方法で何かが間違っている必要があります - しかし、私は何が分からない。添付されているのはインスペクタのスクリーンショットです。コンソールには何も載っていませんが、これは埋め込みとダウンロードアイコンの外観です。ここに何かありますか? https://www.screencast.com/t/WlqHqJTJ50K – JBoss

答えて

1

私のシナリオはまさにそれです! クロムのバージョン61.0.3163.100を使用しています。 ブラウザの欠陥だと思うけど、Googleのフォーラムでは何も見つかりませんでした。 ファイルを直接ダウンロードするかどうかは疑問ですが、クロムPDFビューアをあきらめたくありません。

私は決定的な答えが出るまで、一時的に、私は醜く、控えめな解決策を見つけました。生成されたウィンドウにリンクを作成しました。

var newWindow = window.open("", "PDF", 'dependent=yes,locationbar=no,scrollbars=no,menubar=no,resizable,screenX=50,screenY=50,width=850,height=800'); 
newWindow.document.write(
'<html><body><center>' + 
'<a title="Download File" style="font-family: \'Verdana\';color: #333;text-decoration: none;font-weight: 600;" download="File.PDF" href="data:application/pdf;base64,' + base64 + '">Download File</a>' + 
'</center><br>' + 
'<object width=100% height=100% type="application/pdf" data="data:application/pdf;base64,' + base64 + '">' + 
'<embed type="application/pdf" src="data:application/pdf;base64,' + base64 + '" id="embed_pdf"></embed>' + 
'</object></body></html>'); 
newWindow.window.focus(); 
関連する問題