【问题标题】:Execute JavaScript in PDF file, in MS Edge在 MS Edge 中执行 PDF 文件中的 JavaScript
【发布时间】:2017-08-24 18:20:35
【问题描述】:

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

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

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

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

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

虽然有一些方法可以规避这一点 - 可能会在下载 PDF 之前显示消息 - 我更愿意保留我们系统的原始行为。因此,我的问题...

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

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

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

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

【问题讨论】:

  • 我不确定 PDF 文档是否曾经首先执行 javascript。我从来没听说过。我建议您在 PDF 打开之前执行您提出的警报解决方案。
  • 我会更加考虑您的建议。我也不认为我曾声称文档曾经运行过 JavaScript。
  • 那么,这个现有的代码在哪里运行? PDF 是否加载到 iframe 中?我不明白您的系统目前是如何设置的。
  • 提供 PDF 的网站在新选项卡中打开 PDF 文档。在 IE11/Chrome/non-Edge others 中,在新标签页中加载 PDF 时会出现该消息。
  • @Our_Benefactors:为了将来参考,Adobe PDF 查看器以及其他一些查看器具有内置的 JavaScript 引擎,就像浏览器一样。使用 PDF,您拥有 JS 核心和针对 PDF 对象和事件模型运行的 PDF 扩展......就像 HTML 浏览器拥有 JS 核心和针对 HTML DOM 运行的 HTML 扩展一样。

标签: javascript pdf microsoft-edge


【解决方案1】:

我可以通过什么方式让 MS Edge 运行 PDF 文档 JavaScript?

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    相关资源
    最近更新 更多