Apex Oracle 在 Internet Explorer 上打印

Apex Oracle print on Internet Explorer

我有一个包含 2 个交互式报告的页面。 我需要打印它,所以我有一个调用 window.print()

的 javascript 函数

所以我放了一些 CSS 来调整我的 table

@media print {
 width: 100%; 
 height: 100%; 
 margin: 0% 0% 0% 0%; 
}

问题是 运行 此页面在 IE 8(或更早版本)上,因为@media 不支持。

如何打印这些文件?

我已将相同的 CSS 放入外部文件并调用它

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

但是没用

我该如何解决?

谢谢

在这种情况下,我认为你应该使用 'conditional stylesheets'。

您可以创建一个 css 文件,如 IEPrint.css 并在其中放置您想要的特定样式,对于其他样式表,您可以放置​​如下内容:

<!--[if IE 8]>
   <link rel="stylesheet" type="text/css" href="IEPrint.css">
<![endif]-->

如果用户使用的是 Internet Explorer 8,上面的代码只会 'work'。

您可以使用其他条件,例如:

<!--[if lt IE 9]>
   <link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->

上面的代码 'works' 适用于 Internet Explorer 8 及更低版本。

这是一篇关于样式表条件的精彩文章:https://css-tricks.com/how-to-create-an-ie-only-stylesheet/


单击时触发打印样式 对于具有 jQuery

的 Internet Explorer

但是要在触发另一个元素点击事件时控制元素样式,我们应该使用javascript (这不是最好的方法).

我做了一个 fiddle 所以你可以看到代码的运行:https://jsfiddle.net/dobbinx3/pLvzk8rv/6/

基本上我们有一个元素<p>,当我们想要打印时它变成红色,当我们不打印它时,颜色是黑色。

一个 button 触发了点击事件。

以及当我们完成打印操作时恢复屏幕布局的功能。

记得

  1. 您应该只对 Internet Explorer 执行此操作 'workaround',在我之前提到的条件语句中放入一个 <script>,并且仅将其用于不支持 @media print 的浏览器。
  2. 我注意到您会将 height 设置为 100%,检查 display,如果您想要 position 属性。如果您认为它不起作用。例如,如果您想将其设置在 <div> 元素中。

希望有用,

赛亚