前提・実現したいこと
iframe内にPDF・HTMLを表示する画面を作成しておりまして、
印刷機能を作成している所なのですが、以下のエラーが発生しています。
やりたい事自体は、iframeからではPDFが正常に印刷出来ないので、
obejct内に仮に作成して、それの印刷を行おうとしています。
発生している問題・エラーメッセージ
IE
1SCRIPT438: オブジェクトは 'print' プロパティまたはメソッドをサポートしていません。
該当のソースコード
html
1<div id="iMainArea"> 2 <div id="iFreamArea"> 3 <iframe src="default.html" name="textmain" class="cText" id="iTextP"></iframe> 4 </div> 5</div>
javascript
1 // 親要素を取得 2 var parent = document.getElementById('iFreamArea'); 3 4 // 過去の印刷objectがある場合は削除 5 var node = document.getElementById('print_frame'); 6 if(node != null){ 7 parent.removeChild(node); 8 } 9 10 var winprint = document.getElementById('iTextP').src; 11 12 var url = winprint; 13 var pdf =''; 14 var ftype = ''; 15 16 //URL末尾でtype設定 17 if(url.match(/.(html)$/i)){ 18 ftype = "text/html"; 19 } else if(url.match(/.(pdf)$/i)) { 20 ftype = "application/pdf"; 21 } 22 23 //印刷用objectを作成 24 var elem = document.createElement('object'); 25 elem.id = 'print_frame'; 26 elem.name = 'print_framena'; 27 elem.data = url; 28 elem.type = ftype; 29 30 // 要素を追加 31 parent.appendChild(elem); 32 33 print_framena.focus(); 34 print_framena.print(); //""ここがエラー出現ポイントです"" 35 36 37 38 // 印刷項目を 削除して初期状態に戻す 39 if(node != null){ 40 parent.removeChild(node); 41 } 42
要するにiFrameArea内に、印刷用objectを生成して、終了後に削除しています。
htmlのsrcは可変です(この場合だと、default.htmlを印刷します。)
拡張子は.htmlと.pdfのいずれかです。
試したこと
<object name="print_framena" id="print_frame" data="http://abcde12345.com/default.html" type="text/html"></object> <object name="print_framena" id="print_frame" data="http://abcde12345.com/default.pdf" type="application/pdf"></object>
のように、html、pdfとも作成されている事は確認出来ています。
要素の追加出力箇所を変更、
parnet.print_framena.print()での確認→変わらずエラー
補足情報(FW/ツールのバージョンなど)
基本的に使用するのはIE11なので、IE11で動くようにしたいです。
Googlechrome70では、HTMLの方は印刷する事ができましたが、
PDFの方はUncaught TypeError: pname.print is not a function のエラーで出力されません。
あなたの回答
tips
プレビュー