question:1173189484

で教えていただいた印刷用cssの切り替えスクリプトについてです。
その際はお世話になりました。

無事できているように見えていたのですが、IE5@Windowsで
印刷用画面からプリントしても印刷用cssが適用されませんでした。
画面では印刷用cssが適用されているのですが、
印刷ではレイアウト用cssが効いてしまいます。


印刷用別ウインドウに閉じるボタンを置いたので、
それを印刷時に消したいと思ったこともあり、
更にスタイルを適用できないかと考えました。


そこで教えていただいたscriptに少し書き加えてみました。


これでIEでも印刷用cssが有効になった状態で印刷ができるようになりました。
ところが今度は元ウインドウが再読込を始め、
いつまで経っても終わらず空白画面のままという現象が起きてしまいます。

自力では如何ともしがたく、添削をよろしくお願いします。

#質問文が長くなりすぎるので、コードはコメント欄に書きます。

回答の条件
  • 1人5回まで
  • 登録:2007/03/14 21:05:48
  • 終了:2007/03/21 21:10:03

回答(1件)

id:dungeon-master No.1

dungeon-master回答回数571ベストアンサー獲得回数402007/03/18 20:05:18

ポイント60pt

wopen()開いたウィンドウのWindowオブジェクトをwに保存しているようなので、

print2setでそのウインドウにWriteしたいなら、document.writeは w.document.write

かと思います。


>ところが今度は元ウインドウが再読込を始め、

>いつまで経っても終わらず空白画面のままという現象が起きてしまいます。

<a href="" onclick="wopen();print2set();return false;">印刷</a>

で、どうでしょう。

アンカーのonClickハンドラでは、Javascriptでやりたい処理を実行した後は、

ページのリクエスト自体をRerutn Falseでキャンセル。

id:sunkujira

ご回答ありがとうございました。

今すぐ試す時間がありませんので、試せたら改めて返信します。

#その前に自動終了しちゃったらコメントで報告します。

しかし、知り合いにちょっと聞いてみたらdocument.writeじゃダメかもよ?などとも言われ…。

そっちも未検証なのですが、とりあえず自分でも色々調べているところです。

2007/03/19 04:03:25
  • id:sunkujira
    加えたのは以下の部分です。

    function print2set() {
    document.write('<link rel="stylesheet"')
    document.write('type="text/css"')
    document.write('href="../../../css/print2.css"')
    document.write('media="print"')
    document.write('/>')
    }

    html側はリンク部分を下記のように変更しました。

    <a href="javascript:;" onclick="wopen();print2set()">印刷</a>

  • id:sunkujira
    すみません、前回の質問はこちらです。
    http://q.hatena.ne.jp/1173189484
  • id:sunkujira
    >dungeon-masterさま


    もうご覧になっていないかもですが。
    とりあえず"alternate stylesheet"というのがIEでの印刷時に
    切り替えたcssが適用されない原因ということがわかりました。
    そこでコレを書かない方法で未だに色々試しています。


    長いこと放置してしまって申し訳ありませんでした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません