印刷スタイルシートが有効になっている場合、Javascript経由でどのように検出できますか?
-
19-08-2019 - |
質問
Webページでの印刷スタイルシートの実行中に別の動作をさせたいのですが。次のようなもの:
このページを印刷する場合は、しないでください SWFObjectを呼び出して呼び出す .swfの存在。ただ残す Flashが置き換えるHTML。
既知の要素を、画面には存在するが印刷スタイルシートには存在しない既知のスタイルに設定するなどのことを試しました。しかし、<!> quot; style <!> quot; JavaScriptを介した計算済みスタイルは取得されません。
概要:クロスブラウザーの方法で、どのスタイルシートが有効であるかを知ることは可能ですか?
解決
印刷しやすいページを表示するときに印刷スタイルシートが使用されていると混乱しているように聞こえますが、そうではありません。ユーザーが実際にページをプリンターに送信するまで、印刷スタイルシートは適用されません。この時点で、実行しようとしているjavascriptはすべて終了しています。
やりたいことは、SWFObjectをdivコンテナー内に配置し、コンテナーを印刷メディア用にdisplay:none;
としてスタイル設定することです。
他のヒント
JavaScriptを使用してドキュメント内のスタイルシートにアクセスし、「印刷」スタイルシートがアクティブかどうかを確認できます。アクティブなCSSを決定したら、コンテンツを管理できます。
getActiveStyleSheet
関数は次のようになります。
function getActiveStyleSheet()
{
var i, a;
for (i = 0; (a = document.getElementsByTagName("link")[i]); i++)
{
if (a.getAttribute("rel").indexOf("style") != -1
&& a.getAttribute("title")
&& !a.disabled)
return a.getAttribute("title");
}
return null;
}
ここでコードを見つけることができます: http://www.alistapart.com/articles/alternate / 。
所属していません StackOverflow