• ベストアンサー

フレームが入れ子状態です。ファイルを指定して印刷したいのですが

下記のようにフレームが3つに分かれており、さらにmain.htmlは2つのフレームにわかれています。 bottom.htmlに印刷ボタンを配置し、クリックすると、test02.htmlのみを印刷できるようなプロパティ画面を起動したいのです。 index.html    top.html    main.html       test01.html       test02.html    bottom.html 環境はWin IE5.5以上 使用言語は、HTML、CSS、Javascriptです。 どなたかよい方法を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • N_A_O
  • ベストアンサー率66% (37/56)
回答No.4

function fPrint() { parent.main.test02.htmlのフレーム名.focus(); parent.main.test02.htmlのフレーム名.print(); } これでやってみて。

sarasasp
質問者

お礼

できました!! 本当に親切にどうもありがとうございました。 助かりました!

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

<script type="text/javascript"> <!-- function framePrint(){ parent.main.test02.focus(); parent.main.test02.print(); } //--> </script> <form> <input type="button" name="print" value="test02印刷" onclick="framePrint()"> </form> #1で、ちゃんと動作確認してなくてすみません。 ずっとメールが届いてなくて、ちゃんと動作しないことに気付いていませんでした。 parent.main.test02.location.hrefなどで、test02.htmlがとりだせるので、動くと思っていました。 一度フォーカスが必要とは思いませんでした。 でも、これって、本当はそういう動作(フォーカスが必要なの)はおかしい(IEのバグ?)と思います。 勉強になりました。

sarasasp
質問者

お礼

本当にご親切にどうもありがとうございました!できました!!大変助かりました。ありがとうございました。

  • N_A_O
  • ベストアンサー率66% (37/56)
回答No.3

MacのNetscapeは出来てIE及びSafariは出来ないんだけれど、下記参照 http://www.openspc2.org/reibun/JS_TipsAndTricks/window/010/index.htm これソースを書き忘れてるんで、次の http://www.openspc2.org/reibun/JS_TipsAndTricks/window/010/code.htmlの左のフレーム http://www.openspc2.org/reibun/JS_TipsAndTricks/window/010/left.htmlのソースを見て。やってみて。

sarasasp
質問者

お礼

返信ありがとうございます。 function fPrint() { parent.main.focus(); parent.main.print(); } ここまで書くと、main.htmlが印刷されるようになりますが、その中にあるtest02.htmlだけを印刷したいのです。初心者なもので、応用力がなくてすみません。。。どうしたらよいのでしょうか?いい方法をご存知でしたら教えてください。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

index.html    top.html----------------------frmTop    main.html---------------------frmMain       test01.html---------------frm1       test02.html---------------frm2    bottom.html-------------------frmBottom と各フレーム枠に名前をつけたとして test02.html内のScriptに  function execPagePrint () {   window.print ();  } という関数を用意し、 bottom.html内のScriptに  function execPrint () {   // 一番上から順に中に入っていく   // frmMainというフレーム枠に   // frm2というフレーム枠があり   // そのフレーム枠内部のScriptにある(test02.htmlの中)   // execPagePrint()メソッドを呼び出す   top.frmMain.frm2.execPagePrint();  } と、execPrint()を呼び出すボタン <input type="button" value="印刷" onClick="execPrint();"> 等を準備すれば印刷のプロパティが表示され、オプションタブを選択すればデフォルトで「選択されたフレームのみを印刷する」が選択されていると思います。 (的をはずしていたらごめんなさい) フレーム構成も勝手に想像して作ったので違いがあるかもしれませんが 順に名前を指定していけば同じ動きが出来ると思います。

sarasasp
質問者

お礼

返信ありがとうございます。どうしてもbottom.htmlの印刷となってしまい、test02.htmlは指定できませんでした。(;_:)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<form> <input type="button" name="print" value="印刷ボタン" onclick="window.フレーム名.print()"> </form> でいいと思います。

sarasasp
質問者

お礼

返信ありがとうございます。やってみたのですが、どうしてもエラーが出てしまいます。 <input type="button" name="print" value="印刷ボタン" onclick="window.parent.main.test02.print()"> としてみたら、エラーは出なくなりましたが、bottom.htmlしか印刷されませんでした。

関連するQ&A