1

Web ページでスタイルシートを印刷する際に別の動作をしたいと考えています。次のようなもの:

このページが印刷されている場合は、わざわざ SWFObject を呼び出して .swf を呼び出して存在させないでください。Flash が置き換える HTML はそのままにしておきます。

既知の要素を、画面には存在するが印刷スタイルシートには存在しない既知のスタイルに設定するなどのことを試しました。しかし、Javascript を介して「スタイル」を取得しても、計算されたスタイルは取得されません。

概要: クロスブラウザーの方法で、どのスタイルシートが有効かを知ることは可能ですか?

4

2 に答える 2

6

印刷用のページを表示するときに印刷スタイル シートが使用されていると混乱しているように聞こえますが、そうではありません。ユーザーが実際にページをプリンターに送信するまで、印刷スタイル シートは適用されません。この時点で、実行する JavaScript はすべて終了しています。

やりたいことは、SWFObject を div コンテナー内に配置し、コンテナーをdisplay:none;印刷メディア用にスタイル設定することです。

于 2008-12-05T20:23:10.627 に答える
1

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/にあります。

于 2008-12-05T20:23:13.420 に答える