dポイントプレゼントキャンペーン実施中!

印刷用のcssを読み込んでいるのですが、
困ったことに、javascriptで無理やり表示している要素がありまして、
そのソースは外部サイトを読み込んでいるので、
こちらサーバーで指定したcssのdisplay:noneは一切ききません。

そこで、印刷時には<script></script>を消すみたいな
ことをしたいのですが、そのようなことを可能でしょうか。

javascirptでなくてもphpでも大丈夫です。
cssのmediaとprintのように何かフラグが取得できればいいのですが・・・

ご教授お願いいたします。

A 回答 (2件)

>困ったことに、javascriptで無理やり表示している要素がありまして、


>そのソースは外部サイトを読み込んでいるので、
クロスドメインになっているということでしょうか?
フレームとかインラインフレームを使用して、その一部分だけを印刷したくないという意味?
それともajaxなどを利用しているのでしょうか?

>そこで、印刷時には<script></script>を消すみたいな~
一旦、実行してからスクリプトタグを消したところで、表示内容が元に戻るわけではないので、意味がないと思いますけど?
…ということは、その一部だけを消したいのではなくて全部を消せればよいということですよね?
その部分を包含するような要素を事前に作成しておくわけにはいかにのでしょうか?
実際のスクリプトで何が行なわれているのか不明なのでわかんないけど、包含する要素をあらかじめ作成しておけるのなら、簡単に制御可能ですよね?


あるいは、外部サイトを読込む前に、DOMのクローンを作成して非表示にしておいて、印刷のときはそちらを印刷するとか…(なんか、ばかばかしいけど)

よくわかんないけど、php側で制御しても良いのなら(phpはよく知りませんけど)、javasdcriptで外部サイトを読込む代わりに、phpで先に読込んで編集してからHTML出力すればCSSがそのまま適用できると思いますが?
(外部サイトを自サイトに見せかけるのと同じようなことになるので、ちょっと二の足を踏むけれど…)

No1様の方法(プリント用のページを用意する)が、一番素直な方法に思えますけどね。
    • good
    • 0
この回答へのお礼

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

jsで別ドメインのframe内に読み込まれているような
感じになります。

詳しくどのような仕組みになっているの変わらないのですが、
ともかくそのframeを表示するための
jsが邪魔をしていることは確実なので、
jsタグだけ印刷時に消せたらな~と思っていたんですが・・・

どうやら勘違いしていたんですが、
印刷プレビューはページを再度リロードして
読み込んでいるわけではなさそうですね・・・

その時にでも、jsのタグだけ取り除ければと
考えていたんですが・・・

お礼日時:2010/03/10 08:53

ページが表示された時点で既に外部サイトのscriptが読み込まれ


実行されてしまっているので、後から無かった事にするのは不可能だと
思います。
たとえ<script>タグに<script print_flag="off" src=....>みたいに
識別用の属性を無理やりつけたとしても、読み込まれた後からでは、制御が困難かと....

素直に、プリント用のページを別に用意しておいて、印刷時にそちらに遷移させる
のが常套かと。
phpでやるにしても、考え方は同じで、印刷ボタンが押されたら、そのscript要素を除いた状態で再出力するようにするだけかと思う。
    • good
    • 0
この回答へのお礼

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

やっぱり無理なんですかね・・・
もう少し調べてみます。

まだまだ、ご回答お待ちしております。

お礼日時:2010/03/08 14:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!