首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >printThis.js css文件未加载

printThis.js css文件未加载
EN

Stack Overflow用户
提问于 2016-04-19 04:46:02
回答 3查看 9.8K关注 0票数 2

我正在使用printThis.js found here

它具有调用外部CSS文件的能力,我就是这样做的。我遇到的问题是CSS永远不会在第一次调用函数时加载,并且打印输出缺少样式。第二次它通常会工作,这让我认为CSS文件需要预加载。

我尝试过使用隐藏的iframe和加载CSS的临时页面,但这不起作用。我可以在当前页面上动态加载它,但是像body这样的元素的重叠设置会变得混乱。

下面是jquery代码:

代码语言:javascript
复制
$("#printDiv").printThis({
     debug: false,             
     importCSS: false,          
     importStyle: false,        
     printContainer: true,      
     loadCSS: "css/specialCSS.css", 
     pageTitle: "the page title",      
     removeInline: false,     
     printDelay: 0,           
     header: null,               
     formValues: false          
 });                

$("#print").html("Print");

有没有办法强制插件预加载CSS?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-07 23:46:58

我刚刚遇到了这个问题。下面是我使用的代码:

代码语言:javascript
复制
$('selector').printThis({
            loadCSS: "/app/css/printListTable.css",
            header:'<h1>'+$pageTitle+' Table Report</h1>'
        });

当我第一次单击该按钮时,样式表没有加载,所以我的print css没有加载。当我再次单击操作按钮时,样式显示为预期的样式。我遗漏了importCSS:true的一个关键语法,我假设它会为我预加载文件。所以我更新的代码是:

代码语言:javascript
复制
$('selector').printThis({
                importCSS: true,
                importStyle: true,//thrown in for extra measure
                loadCSS: "/app/css/printListTable.css",
                header:'<h1>'+$pageTitle+' Table Report</h1>'
            });

试图通过iframe预加载这个css将是一场噩梦,并且违背了这个插件的基本原理。

票数 1
EN

Stack Overflow用户

发布于 2016-04-25 03:51:55

您可以尝试简单地将load CSS调用移动到页面中调用的另一个函数(请记住:浏览器从上到下读取页面,它看起来就像看起来一样直观)。您还可以将调用加载到页面顶部不可见的<span>中。

只是为了完整,yes, you can preload CSS without using a hidden iFrame

票数 1
EN

Stack Overflow用户

发布于 2019-06-04 21:26:42

尝试在'loadCSS‘参数中使用完整路径

更新:还注意到如果我关闭了DevTools (选中了“禁用缓存”),这个bug就会消失。如果我打开F12 -我的CSS加载有问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36703983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档