Javascript 在打印预览中出现包含Chrome的样式问题

Javascript 在打印预览中出现包含Chrome的样式问题,javascript,html,css,Javascript,Html,Css,以下代码在Firefox Mozilla上运行良好,但在Chrome或IE上则不行: printWindow.document.write('<link rel="stylesheet" href="/css/styles.css">'); printWindow.document.write(“”); 控制台中的消息是: [Deprecation]根据HTML中定义的样式表设置主控文档的样式 不赞成进口 如果我这样做,它适用于所有浏览器: printWindow.documen

以下代码在Firefox Mozilla上运行良好,但在Chrome或IE上则不行:

printWindow.document.write('<link rel="stylesheet" href="/css/styles.css">');
printWindow.document.write(“”);
控制台中的消息是:

[Deprecation]根据HTML中定义的样式表设置主控文档的样式 不赞成进口

如果我这样做,它适用于所有浏览器:

printWindow.document.write('<style>body {background:red}</style>');
printWindow.document.write('body{background:red}');

你知道我该如何解决这个问题吗?

我不确定我是否完全理解你的问题,但我确实把下面的内容放在一起作为我如何解决这个问题的一个例子。如您所见,我能够在新窗口中使用外部css库。在Chrome70和Edge上进行了测试,但我没有可靠的方法在IE上进行测试

您可以忽略从原始窗口中提取内容的javascript部分,我只是假设您将使用该功能

var printWindow = window.open("", "PrintWindow", "width=400,height=400");
printWindow.document.write('<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitterbootstrap/4.1.2/css/bootstrap.min.css">');
var printWindow=window.open(“,”printWindow“,”宽度=400,高度=400”);
printWindow.document.write(“”);

您是否可以同时显示打印预览?printWindow.print();我想当你加上这个,它将不会工作!经过一点延迟,我已将笔更新为包含.print()。虽然这在Chrome中有效,但我建议使用特定于打印的窗口,而不是新窗口,但我承认我没有关于您的问题的所有详细信息。在打印执行后,样式不会渗透到应用中。它似乎为我解决了这一问题:),请您解释为什么在这种情况下需要使用此超时,也将接受您的答案:)似乎.print()方法在新窗口完全呈现之前运行。使用onload方法可能是一个更好的解决方案,但我相信Chrome(可能还有其他浏览器)对在没有用户交互的情况下自动化print()方法有限制。这里有一个链接,指向onload方法的更多详细信息: