Jquery 在IE中动态加载打印样式表

Jquery 在IE中动态加载打印样式表,jquery,css,printing,Jquery,Css,Printing,我有以下代码来加载新样式表以打印lightbox对话框: $styleUrl = '../Content/styles/icis.dashboard.colorbox.print.css'; if (document.createStyleSheet) { document.createStyleSheet($styleUrl); } else { $('head').append('<link rel="stylesheet

我有以下代码来加载新样式表以打印lightbox对话框:

    $styleUrl = '../Content/styles/icis.dashboard.colorbox.print.css';
    if (document.createStyleSheet) {
        document.createStyleSheet($styleUrl);
    }
    else {
        $('head').append('<link rel="stylesheet" type="text/css" href="../Content/styles/icis.dashboard.colorbox.print.css" media="print">');
    }
$styleUrl='../Content/styles/icis.dashboard.colorbox.print.css';
if(document.createStyleSheet){
document.createStyleSheet($styleUrl);
}
否则{
$('head')。追加('');
}

如何将媒体类型限制为在IE特定代码中打印?

我相信这会起作用:

if (document.createStyleSheet) {
    var ieStyleSheet = document.createStyleSheet($styleUrl);
    ieStyleSheet.media = "print";
}

将onbeforeprint添加到您的body标签:

<body onbeforeprint="loadPrintCSS()">

以及JavaScript/jQuery函数:

function loadPrintCSS() {
  $('head').append('<link rel="stylesheet" type="text/css" href="windows-firefox.css" media="print">');
}
函数loadPrintCSS(){
$('head')。追加('');
}

这是IE特有的,但这正是你所要求的。

嗨,这对我没用。我正在尝试打印显示在lightbox对话框中的报告。当lightbox完成加载后,我为IE和符合标准的浏览器注入打印CSS文件引用。符合标准的浏览器可以很好地打印报告,但IE不能。它还打印背景内容,即包括灯箱在内的整个页面的内容。没问题。我并不是故意让人觉得不好:)