javascript - 如何禁用 PDF.js 渲染的 PDF 中的超链接

标签 javascript hyperlink pdf.js

我正在研究在网络应用程序中使用 PDF.js。到目前为止,它满足了我们所有的业务需求。然而,管理层要求我们能够禁用 PDF 中的超链接。我们不一定要去掉蓝色文本和下划线,但如果用户单击超链接,它不应该去任何地方。

我仔细查看了 API,但没有找到任何相关内容。我还查看了源代码,但我没有发现任何可以注释掉以禁用超链接的内容。有没有办法禁用 PDF 中包含的超链接?

最佳答案

经过大量的实验,我找到了如何通过修改源代码来做到这一点。有一个代码块以以下内容开头:

document.addEventListener('pagerendered', function (e) {

在函数末尾的右括号之前,添加以下代码:

var allowInternalLinks = true;
var page = document.getElementById('pageContainer' + pageNumber);
var hyperlinks = page.getElementsByTagName('a');
for (var i=0; i<hyperlinks.length; i++){
  if (!allowInternalLinks || hyperlinks[i].className != 'internalLink'){
    hyperlinks[i].onclick = function(e) {
      e.preventDefault();
    }
   }
};

它的作用是获取渲染的页面,迭代该页面上的所有超链接,然后禁用它们。我还添加了一个 bool 变量,允许您选择允许或禁止内部链接(即将用户带到文档中另一个位置的链接)。

关于javascript - 如何禁用 PDF.js 渲染的 PDF 中的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31053948/

相关文章:

javascript - 从其他数据角色 ="page"重新加载第一个数据角色 ="page"

hyperlink - 将鼠标悬停在一个链接上会使其右侧出现小破折号

html - 图片和链接不是 "aligned"

javascript - 使用 Hammer.js 在 PDF.js 上缩放

javascript - PDFJS 查找并导航至页面

JavaScript 如何计算 18 位小数的字符串值

javascript - sessionStorage 不适用于 iphone 6 上的 safari - 非私有(private)模式

javascript - 有没有办法使用pdf.js为pdf渲染编写javascript事件

javascript - Shared Web Workers 中加载worker 的机制可以修改吗?

javascript - 如何使超链接上的相同工作 JavaScript 代码可以在单击按钮时工作?