2016-12-09 9 views
0

に取り組んでいない私は、コードPDFは、MACマシン

$(document).on("click", ".btnOpenWindowpaid", function() { 
      var fileName = $(this).attr("data-path"); 
      var fileNameIndex = fileName.lastIndexOf("/") + 1; 
      var OnlyFileName = fileName.substr(fileNameIndex); 
      var iframe = '<object type="application/pdf" data="' + fileName + '" width="100%" height="420">No Support</object>' 
      $.createModal({ 
       title: OnlyFileName, 
       message: iframe, 
       closeButton: true, 
       scrollable: false 
      }); 

     }); 

(function (a) { 
      a.createModal = function (b) { 
       defaults = { title: "", message: "Your Message Goes Here!", closeButton: true, scrollable: false }; 
       var b = a.extend({}, defaults, b); var c = (b.scrollable === true) ? 'style="max-height: 420px;overflow-y: auto;"' : ""; 
       html = '<div class="modal fade" id="myModal">'; html += '<div class="modal-dialog">'; html += '<div class="modal-content">'; 
       html += '<div class="modal-header">'; html += '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>'; 
       if (b.title.length > 0) { html += '<h4 class="modal-title">' + b.title + "</h4>" } html += "</div>"; 
       html += '<div class="modal-body" ' + c + ">"; html += b.message; html += "</div>"; html += '<div class="modal-footer">'; 
       if (b.closeButton === true) { html += '<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>' } html += "</div>"; 
       html += "</div>"; html += "</div>"; html += "</div>"; a("body").prepend(html); a("#myModal").modal().on("hidden.bs.modal", 
        function() { a(this).remove() }) 
      } 
     })(jQuery); 

の下に使用してポップアップウィンドウ上でPDFファイルを開くしようとしています。このコードは、Windowsマシンのブラウザで完全にモーダルポップアップ上でPDFファイルを開きます。私はMacマシンでテストしました。動いていない。

オペレーティングシステムとブラウザに関係なく、モーダルポップでPDFを開くにはどうすればよいですか?

答えて

0

Safari/Chromeには、これが動作しないようにするポップアップブロッカーが組み込まれています。 Safari/Chromeで新しいウィンドウを開くことができる唯一のjavascriptは、クリックハンドラー(および他の直接ユーザー入力ハンドラー)に直接接続されたjavascriptです。以前のバージョンでは、人々はチート(いくつかの他の要素(フォームまたはdiv)を生成し、ユーザー入力をjavascriptでシミュレートするなど)をいくつか考え出しましたが、新しいバージョンではこれを検出することがよりスマートになりました。遅れたポップアップを使用しないように設定を変更することをお勧めします。これは、一般的にユーザーに不快感を与えることのある種類のものです。私はの戻り値をチェックすることでこれを回避まし

仕事は周りのだろうwindow.open()未定義のため。それが本当であれば、ポップアップブロッカーを無効にするためのメッセージをalert()に呼び出します。

var myWin = window.open([args]);

if(myWin == undefined) alert( 'あなたのポップアップブロッカーを無効にしてください');

関連する問題