質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

513閲覧

javascriptで生成したobjectを使った印刷でエラーが出る

Ruse

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/10/23 04:19

編集2018/10/25 00:42

前提・実現したいこと

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 のエラーで出力されません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問