【问题标题】:change chrome print preview default options更改 chrome 打印预览默认选项
【发布时间】:2011-12-10 05:48:37
【问题描述】:

在 chrome 打印预览中,在选项选项卡下,默认选中页眉和页脚。是否可以通过 javascript / chrome 扩展程序 / 任何告诉用户手动执行之外的操作将其默认设置为关闭?

或者是否可以删除那里显示的日期?

【问题讨论】:

  • 嘿@jaycode,你有想过这个吗?我正在尝试做同样的事情。寻找一种默认关闭页眉和页脚的方法。

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

简而言之,是的,您可以控制这种行为。这实际上非常奇怪——正如最初在问题“In Google Chrome, Docs Can Control Headers and Footers from Javascript?”中所回答的那样,这种行为的秘密在于@page CSS 属性*。

如果你设置了这个确切的样式:

    @page { margin: 0; }

然后你得到想要的行为,页眉和页脚选项消失:

这似乎是 Google Chrome 未记录的行为,或者至少不广为人知 - 粗略地挖掘他们的开发者文档一无所获。谷歌自己在他们自己的网络应用程序中使用它,所以这可能不是秘密,但我找不到任何官方说明。

值得注意的是,0 的边距不会简单地禁用“页眉和页脚”选项,它实际上会导致它完全从菜单中消失(通过快速折叠)。

实验表明,此方法的其他变体没有相同的效果。例如margin: 0; margin-left: 10cm; 不会导致这种行为。

如果您确实选择实施此解决方案,则意味着失去通过@page 属性控制这些边距的能力——您应该将它们作为CSS 打印媒体样式表的一部分进行控制。令人遗憾的是,Chrome 以这种方式破坏了 @page 属性。也就是说,FF 仍然不支持@page(截至目前),所以这并不是一个完美的解决方案。



*有关@page 属性的更多信息

@page CSS 应该控制打印页面的边距,specification 说:

页面框是一个包含两个区域的矩形区域:

  • 页面区域。页面区域包括布置在该页面上的框。 第一个页面区域的边缘建立了一个矩形,即 文档的初始包含块。画布背景是 在页面区域内绘制并覆盖。

  • 边距区域,它 围绕页面区域。页边距区域是透明的。

最现代的browsers support @page CSS 属性。 Firefox 是最杰出的,尽管他们完全做到了document it in their developer resources,并且他们的问题跟踪器has a ticket for this 可以追溯到 10 年前。最近的行动是今天,所以也许 FF 很快就会提供@page 支持。

【讨论】:

  • 请注意,如果您删除边距,即使您在页面顶部添加边距以进行补偿,如果您打印超过 1 页,您就会遇到麻烦。
  • 值得注意的是,您不必设置那种 exact 样式。例如,如果要保留页面的左右边距,可以使用@page { margin: 0 auto; }
  • 没有这个网站我们会怎么做?太棒了!
【解决方案2】:

嗯,页面只是 html,所以如果你可以在页面上执行 javascript,那么是的,你可以做到这一点。我不记得 Chrome 扩展是否可以绑定到内部页面。您知道如何编写 Chrome 扩展程序吗?如果是这样,这将很容易测试。

document.getElementById('header-footer').checked = false;

【讨论】:

  • 好答案!现在 Chrome 最新版本的正确命令是 document.getElementsByClassName('header-footer-checkbox')[0].checked=false 但它只能在控制台中运行它,在打印页面加载后......奇怪的是,当我重新打开打印页面时,再次检查设置并且它不会发生用户单击未标记复选框。
【解决方案3】:

Chrome 只允许您 override 对特定的 chrome:// 页面进行处理,而打印页面不是其中之一。您也仅限于将 injecting 脚本用于几个特定的​​方案。

匹配模式本质上是一个以允许的方案(http、https、文件或 ftp)开头的 URL

【讨论】:

    【解决方案4】:

    在当前版本的 Google Chrome 中,打印预览现在可以选择包含或不包含页眉和页脚,以及定义边距以及包含或不包含背景颜色和图像。只需将您的浏览器更新到最新版本即可。

    【讨论】:

    • 但是chrome仍然无法控制我们是否需要像在IE中一样隐藏URL/页码或标题。
    【解决方案5】:

    当前版本的 31 会记住设置是否需要双面、页眉和页脚以及背景图像和颜色的打印,但据我所知,它不会记住边距设置。

    【讨论】:

      【解决方案6】:

      似乎没有办法做这样的事情。

      【讨论】:

      • 可能是因为这不准确。
      猜你喜欢
      • 2021-10-11
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多