如何在打印事件上触发javascript?

2024-01-18

当用户打印页面时是否可以触发javascript事件? 当用户选择打印页面时,我想删除对 j​​avascript 库的依赖,因为该库非常适合屏幕但不适合打印。

知道如何实现这一目标吗?


对于任何从谷歌偶然发现这个答案的人,让我尝试澄清一下:

正如 Ajay 指出的,有两个事件被触发用于打印,但它们没有得到很好的支持;据我所知,它们仅在 Internet Explorer 和 Firefox (6+) 浏览器中受支持。这些事件是 window.onbeforeprint 和 window.onafterprint,它们(如您所期望的)将在打印作业之前和之后触发。

然而,正如乔的链接中指出的(https://stackoverflow.com/a/9920784/578667 https://stackoverflow.com/a/9920784/578667),这并不完全是在所有情况下的实现方式。在大多数情况下,这两个事件都会在对话框之前触发;在其他情况下,脚本执行可能会在打印对话框期间停止,因此两个事件可能会同时触发(在对话框完成之后)。

有关这两个事件的更多信息(和浏览器支持):

https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeprint https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeprint

https://developer.mozilla.org/en-US/docs/DOM/window.onafterprint https://developer.mozilla.org/en-US/docs/DOM/window.onafterprint

简短的回答是:如果您希望干扰打印流程,请不要这样做。如果您希望在打印后触发代码,它不会按照您想要的方式工作;预计浏览器支持较差,并尝试优雅地降级。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在打印事件上触发javascript? 的相关文章

随机推荐

  • DocumentDB REST API - 授权令牌错误

    Problem 每当我们请求列表或查询时 我们都会看到从 DocumentDB REST API 返回此错误 但当我们按名称 ID 获取对象时则不会 输入的授权令牌无法满足请求 请检查预期的有效负载是否按照协议构建 并检查正在使用的密钥 背
  • 使用 PLSQL 发送电子邮件

    我想使用 PL SQL 通过 gmail 或 yahoo 主机发送电子邮件 我在 google 中搜索并找到 SMT Mail 包 但它对我不起作用 请问有人可以指导我如何实现这一目标吗 CREATE OR REPLACE PROCEDUR
  • IE 10 和 11 使固定背景在使用鼠标滚轮滚动时跳跃

    当您在 Windows 8 中滚动鼠标滚轮时 固定的背景图像会疯狂地弹跳 这仅影响 IE 10 和 IE 11 这会影响以下元素position fixed以及 这是一个具有固定背景图像的示例 http www catcubed com t
  • Celery 任务优先级

    我想使用 Celery 管理任务 我想要一个任务队列 并发性为1 并且能够将任务推送到具有不同优先级的队列中 这样优先级较高的任务将抢占其他任务 我将三个任务添加到队列中 如下所示 添加任务 py from tasks import exa
  • 可变长度数组类型的 Sizeof 运算符

    根据参考参数 http en cppreference com w c language sizeof 如果类型为表达 is a 变长数组 type 表达被评估并计算其求值的数组的大小 在运行时 这意味着 如果类型表达是一个VLA类型 那么
  • jsp缓存标签库

    我想缓存 JSP 页面的某些部分 因为渲染起来很繁重 整个页面无法缓存 因为它包含用户特定的内容 但大部分页面可以 我认为最好的解决方案是创建一个 JSP 缓存标记 似乎有几种解决方案 但大多数项目都已死亡或被放弃 http www ope
  • 如何使用 FosRestBundle 公开函数结果?

    我正在使用 Symfony2 和 FosRestBundle 为我们的系统开发 REST API FosRestBundle 是一个非常好的工具 但它似乎有一个限制 只有属性 私有 受保护和公共 可以暴露给 API 我想公开一个基于其他两个
  • 在 Python 中将 UTF-8 转换为字符串文字

    我有一个 UTF 8 格式的字符串 但不太确定如何将此字符串转换为其相应的字符文字 例如我有字符串 我的字符串是 Entre xc3 xa9 示例一 这段代码 u Entre xc3 xa9 encode latin 1 decode ut
  • Tkinter 复选框/组合框下拉列表

    我正在尝试用 Python 创建一个后处理数据应用程序 并使用 Tkinter 为其设计 GUI 我不知道 Tkinter 是否支持由复选框组成的下拉列表 然后您可以从中选择多个框 下图反映了我试图描述的内容 这可能吗 这并不完全是您想要的
  • .NET 中的视频会议

    我正在向我们的一款软件添加聊天功能 我已经使用 WCF 启动并运行了聊天功能 我正在考虑尝试使用 WCF 再次添加视频聊天功能 基本上我将发送视频流 而不是发送客户端消息 我想知道是否有人用 WCF 做过这个 是否非常推荐使用 WCF 来执
  • 有没有办法在 Perl 中使用“常量”作为哈希键?

    有没有办法使用常量作为哈希键 例如 use constant X gt 1 my x X gt X 上面的代码将创建一个以 X 作为键而不是 1 作为键的哈希 然而 我想使用常量 X 的值作为键 use constant实际上制作了常量子程
  • Ruby Openid 连接库与客户端消费示例

    我正在寻找 ruby openid connect 客户端库以及使用它的直接代码示例 我找到了一个图书馆here https github com nov openid connect它的示例基于 Rails 但我对 Rails 不太熟悉
  • 为什么linux在内核代码持有自旋锁后禁用内核抢占?

    我是 Linux 新手 正在阅读 Rubini Corbet 撰写的 Linux 设备驱动程序书籍 我对与以下相关的一项声明感到困惑spinlocks 书中指出 如果非抢占式单处理器系统曾经进入 旋转一把锁 它会永远旋转 没有其他线程能够获
  • Java字符串搜索忽略重音符号

    我正在尝试为我的应用程序编写一个过滤函数 该函数将采用输入字符串并过滤掉以某种方式与给定输入不匹配的所有对象 最简单的方法是使用 String 的 contains 方法 即仅检查对象 对象中的 String 变量 是否包含过滤器中指定的字
  • 在 WHERE 子句中使用 mysql concat() ?

    我想搜索我的表 其中包含一列名字和一列姓氏 我目前接受一个字段中的搜索词 并将其与两列进行比较 一次一个 select from table where first name like search term or last name li
  • 有没有检查 CLS 合规性的工具?

    有没有一个工具可以分析我的 NET 代码 C 和VB NET http en wikipedia org wiki Visual Basic NET 然后告诉我why东西不符合 CLS Visual Studio 很高兴地告诉我一个参数不符
  • 如何只为 pandas 中数据帧的某些列绘制直方图

    这是我拥有的数据 在此输入图像描述 https i stack imgur com EwuSA png 假设我有一个名为 df 的变量中的数据框 如果我执行 df hist 它将为数据框中的每个类别显示一个直方图 但我只想为从类别 1 到类
  • 从 docker-compose 中退出代码打破 while 循环

    我有一个案例 有一个 WordPress 项目 我应该在其中创建一个脚本来更新插件并将源代码更改提交到单独的分支 在这样做时我遇到了一个奇怪的问题 输入变量 akimset 4 0 3 all in one wp migration 6 7
  • 在一条消息 MQTT 中发布多个主题

    我有一个设备可以从不同的传感器收集大量数据 我想通过一条消息将它们发送给我的经纪人 在客户端 我只想在给定时间查看其中一些数据 我不想看到全部数据 我可以在一条消息中发布多个主题 然后在客户端只能看到其中的一些主题吗 我知道我可以使用通配符
  • 如何在打印事件上触发javascript?

    当用户打印页面时是否可以触发javascript事件 当用户选择打印页面时 我想删除对 j avascript 库的依赖 因为该库非常适合屏幕但不适合打印 知道如何实现这一目标吗 对于任何从谷歌偶然发现这个答案的人 让我尝试澄清一下 正如