2011-04-12 103 views
0

我在一个有打印视图的页面上工作,所以当用户点击“打印”时弹出一个新窗口,我想为该窗口添加一个.css文件。我如何添加一个CSS文件到页面的正文?

感谢

+0

难道你只是将该CSS文件包含在生成的预览页面的标题中吗?没有向我们展示任何代码,你尝试过什么,或者甚至问我们一个问题 - 知道如何帮助你是不可能的。 – Dutchie432 2011-04-12 18:23:59

+0

您的新窗口是在新窗口中打开的页面上的单独URL还是内容? – 2011-04-12 18:24:35

+0

我想这样的事情$(文件)。就绪(函数(){ \t \t $(”打印 “)。点击(函数(){ \t \t \t \t $(” 链接 “)。ATTR(” HREF”, “CSS/ecsPrint.css”); \t \t \t返回假; \t \t \t \t}); \t \t \t \t}); – Jay 2011-04-12 18:25:19

回答

0
$(document).ready(function() { 
    $(".print").click(function() { 
     $("head").append("<link>"); 
     css = $("head").children(":last"); 
     css.attr({ 
      rel: "stylesheet", 
      type: "text/css", 
      href: "css/ecsPrint.css" 
     }); 
     return false; 
    }); 
}); 

除非这是一个内部Web应用程序,我wouldnt推荐加载与JS的CSS。

+0

“除非这是一个企业网站”大声笑。作为除了外部人写“企业”网站的人之外,我宣布这个热闹,但对我的心脏不好。 – 2011-04-12 18:35:05

+0

更适合你喜欢的亚当? – Dementic 2011-04-12 18:37:19

+1

无论环境如何,我都是网络最佳实践的支持者。我更喜欢“我不会推荐使用JS加载CSS。期间,它可能是不可靠和不清楚的。” – 2011-04-12 18:43:55

6

当包括你的样式表,使用:

<link rel="stylesheet" media="print" href="stylesheet.css" /> 
+1

这是您如何指定样式表以仅在打印时应用。 – m4tt1mus 2011-04-12 18:25:09

+1

我不认为这是他问的...?他似乎想要将内容加载到新窗口中,然后将其视觉化地呈现给用户。这不会在屏幕上显示 - 仅在打印时才显示。 – 2011-04-12 18:25:36

+0

是的,他甚至没有提出问题......我明白你的意思...... – 2011-04-12 18:32:00

5

您可以添加一个只打印样式表

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 

这个样式并不需要被“添加”到弹出窗口。当用户处于“正常”视图时,它将被忽略,然后仅在用户打印文档时才应用。

如果您想同时显示并应用于打印文档,只需将其级联即可。

<link rel="stylesheet" type="text/css" href="normal.css" /> #normal styling 
<link rel="stylesheet" type="text/css" href="print.css" /> #override normal styling 
<link rel="stylesheet" type="text/css" media="print" href="print.css" /> #override normal, for printer 

这样你就能得到两全其美的效果。根据需要使用print.css中的新规则覆盖normal.css中的css规则,以根据需要制作文档。新文档在外观上会有所不同,然后打印出不同的文档。

1

编辑:删除由于澄清。新的答案:

打开新窗口的URL这样:blah.aspx?print=true

然后在后端:

//Assuming you use .NET... 
if(Request.Querystring("print").toLower() == "true") { //Convert to bool type if you are so inclined 
    printCSS.Visible = True; 
} 

HTML:

<head> 
    <link rel="stylesheet" type="text/css" href="..." visible="false" runat="server" id="printCSS" /> 
</head> 

你也使用的一个显示的jQuery方法也使用jQuery加载它。

+0

实际上我正在加载打印视图中的相同页面,并根据css文件进行了一些更改。 – Jay 2011-04-12 18:32:47

+0

在这种情况下,我建议使用URL查询字符串参数,以便您的jQuery或后端代码查看,然后将相应的CSS文件直接加载到头部。 – 2011-04-12 18:37:25

相关问题