Javascript 如何将css文件添加到页面主体?

Javascript 如何将css文件添加到页面主体?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在处理一个具有打印视图的页面,因此当用户单击“打印”时,会弹出一个新窗口,我只想为该窗口添加一个.css文件 谢谢在包含样式表时,请使用以下选项: <link rel="stylesheet" media="print" href="stylesheet.css" /> 您可以添加仅打印样式表 <link rel="stylesheet" type="text/css" media="print" href="print.css" /> 此样式表不需要“添

我正在处理一个具有打印视图的页面,因此当用户单击“打印”时,会弹出一个新窗口,我只想为该窗口添加一个.css文件


谢谢

在包含样式表时,请使用以下选项:

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

您可以添加仅打印样式表

<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规则,以使文档看起来如您所愿。新文档将在视觉上看起来不同,然后以不同的方式打印出来

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

在新窗口中打开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:


您还可以使用显示的jQuery方法之一,也可以使用jQuery将其加载到中。

$(document).ready(function(){
$(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;
    });
});
$(“.print”)。单击(函数(){ $(“标题”)。附加(“”); css=$(“head”).children(“:last”); css.attr({ rel:“样式表”, 键入:“文本/css”, href:“css/ecsPrint.css” }); 返回false; }); });

除非这是一个内部Web应用程序,否则我不建议用JS加载css。

您是否只需将css文件包含在生成的预览页面的标题中?如果不向我们展示任何代码、您尝试过的内容,甚至不向我们提出任何问题,就不可能知道如何帮助您。您的新窗口是在新窗口中打开的页面上的单独URL或内容吗?我正在尝试类似以下内容$(文档)。就绪(函数(){$(.print”)。单击(函数(){$(.link)).attr(“href”,“css/ecsPrint.css”);返回false;});})@亚当:是的,它会在一个新窗口中打开。你没有真正回答我的问题。。这是一个新的URL,还是你网页上的内容。我假设你问的是#2,在这种情况下,请看下面我的答案。这就是你指定样式表仅在打印时应用的方式。我不认为这是他问的。。。?他似乎想将内容加载到一个新窗口中,然后为用户直观地设置样式。这在屏幕上是看不见的——只有在打印时才能看到。完全不是你的错。:)我并不是有意要冒犯你;)实际上,我正在打印视图中加载相同的页面,并根据css文件进行了一些更改。在这种情况下,我建议使用jQuery或后端代码查看的URL querystring参数,然后将相应的css文件直接加载到头部。“除非这是一个公司网站”lol。作为编写“公司”的人除了外部网站,我宣布这很搞笑,但对我的心脏不好。亚当,这更符合你的喜好吗?无论环境如何,我都是网络最佳实践的支持者。我更喜欢“我不建议用JS.Period加载CSS。这可能是不可靠和不清楚的。”你是对的,亚当,我不是一个以英语为母语的人(或本案例的作者),我尽量减少对我能写的内容的回答:\但你是对的,“我不建议用JS加载CSS”是正确的评论。值得一提的是,我看不出你的英语一点也不流利。干杯
$(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;
    });
});