1

我想在网页上的打印样式表期间有替代行为。类似于以下内容:

如果正在打印此页面,请不要费心调用 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 回答