2017-09-13 9 views
1

アンカーでonclickと呼ばれる次の関数があります。私が望むように新しいウィンドウを開きますが、open()関数の'URL'フィールドが空でなければ、印刷ダイアログボックスは表示されません。新しいウィンドウを開き、そのウィンドウの印刷ダイアログを表示したい

特定のURL('https://www.example.com/file.pdf')を開く必要があるため、空白のままにすることはできません。

<script> 
    var pdfw; 
    function printPdf() { 
    // pull url 
    url = document.getElementById('print').getAttribute('href'); 
    console.log("pull"); 

    // open window 
    pdfw = window.open('', '_blank', 'fullscreen=1,channelmode=1,status=1,resizable=1'); 
    console.log("open"); 

    // print window 
    pdfw.focus().print(); 
    console.log("print"); 
    } 
</script> 

は、新しいURLはもちろん、次の特定されていないため、空白である窓と、印刷ダイアログボックスを表示します:

pdfw = window.open('', '_blank', 'fullscreen=1,channelmode=1,status=1,resizable=1'); 

は、目的のファイルを表示する新しいウィンドウが表示されますが、表示されません。印刷ダイアログボックス:

pdfw = window.open(url, '_blank', 'fullscreen=1,channelmode=1,status=1,resizable=1'); 

私はそれが競合状態の問題のいくつかの種類ですが、他に何もスクリプトを動作させているのいずれかのページに印刷機能を使用していないので、私はトンかなり確信していると言うでしょう帽子はそれじゃない。

この問題に関するお手伝いやアドバイスをいただければ幸いです。

答えて

0

ウィンドウを開いた後、あなたはthis

+0

私はこの方法を試してみた、それだけで動くが印刷ダイアログボックスを表示せずに新しいウィンドウが開きます。 –

+0

私はこれをクロムでテストして、印刷ダイアログを表示しています –

1

あなたは次のようにそれを行うことができます見ることができます詳細については

pdfw = window.open(url, '_blank', 'fullscreen=1,channelmode=1,status=1,resizable=1'); 
pdfw.focus(); 
// you need to call print after window loads like this 
pdfw.onload=function(){ 
       pdfw.print(); 
       } 

を呼び出すことができます。

var win = window.open("", "Print Page", "height=600,width=800"); 
win.document.write("<h1>Welcome to Print Page</h1>"); 
win.print(); 

JsFiddle Here

+0

私はこの方法を試しましたが、他の場所(w3schoolsなど)で動作しますが、そこでは動作しますが、 "win.print();' "私が働いているところでは誘発されない。私は 'onload =" print(); "と呼ばれる要素を新しいウィンドウに書き込もうと試みましたが、まだ運がありません。 –

関連する問題