javascript - 在 MS Edge 中执行 PDF 文件中的 JavaScript

标签 javascript pdf microsoft-edge

背景:
对于我支持的应用程序,我们向用户展示某些文档,他们要么填写,然后必须交给某个人,要么必须打印出来,然后填写并交给特定的人.

我们显示这些消息的方式是通过 PDF 文档中的 JavaScript,如下所示:

app.alert('You need to fill in this form, then send it to Person McDude in Accounting.');

虽然这种方法在 IE11、Chrome、Firefox 和其他现代浏览器及其 PDF 查看器中经过了很好的测试,但 Edge 似乎是个异常(exception)。无论出于何种原因——很可能是 Edge 中内置 PDF 阅读器的差异——上面应该显示的消息没有显示。

我们的客户要求我们向下载 PDF 的人显示此消息;我们无法绕过展示它。

虽然有一些方法可以避免这种情况——也许在 PDF 下载之前显示消息——但我更愿意保留我们系统的原始行为。因此,我的问题...

研究:
在写这个主题之前,我使用关键字 run javascript in PDF file edge 进行了几次谷歌搜索。

我没有从我的搜索中找到相关结果,也没有找到相同的其他排列。虽然我可能没有使用正确的组合,但我没有发现关于像我这样的其他案例的结果,PDF 中未显示在 Edge 中的强制警告文本,或关于此类问题的任何潜在补救措施.

此外,我自己即兴搜索任何 Edge PDF 查看器设置都遇到了......没有结果。说真的,我根本不知道如何配置 Edge PDF 查看器。

问题:
怎样才能让 MS Edge 运行 PDF 文档 JavaScript?

最佳答案

In what way can I get MS Edge to run PDF document JavaScript?

你不能。 Edge 中内置的 PDF 查看器不会执行 PDF 中嵌入的 JavaScript。此外,即使对于少数确实使用和执行 JavaScript 的基于浏览器的 PDF 查看器,如果您有计算字段、字段验证或电话号码、日期或 SSN 的特殊格式,它们中的大多数也不会完全或准确地执行此操作。在像您这样的情况下,我通常会推荐以下内容。

  1. 将您的 PDF 文件放在 .htaccess 文件或等效文件设置为仅下载的文件夹中。这将阻止任何浏览器尝试显示该文件。

  2. 向文件添加一个始终可见的层,除非应用程序可以运行可以隐藏它的 JavaScript。该层解释说,该表单需要使用一组特定的经过测试的 PDF 查看器。对于基本的 JavaScript,您可以使用 Foxit、Nuance 和 Nitro,但如果您希望您的表单始终有效,请使用 Adob​​e Reader。

关于javascript - 在 MS Edge 中执行 PDF 文件中的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868465/

相关文章:

html - 如何在 CSS 中使用::before 和::after 将形状(转换)相互叠加?边缘不会在背景上显示形状

javascript - 在javascript中验证日期范围

javascript - 从函数内部获取函数对象属性

javascript - 曾经是标签的通用正则表达式

从 PDF 中读取附加的 XML

chart.js - ChartJS Canvas 在边缘浏览器中不显示颜色

javascript - 如何防止 IE11 和 Microsoft Edge 积极限制事件?

javascript - Meteor 从另一个方法调用模板方法

c# - 使用 ABCpdf 将 HTML 转换为 PDF

java - iText 矩形如何使用setBorderColorxxx 设置颜色 |如何向矩形添加文本