.PDF中的自定义操作链接...编写Javascript以在单击时更改链接的外观?

时间:2015-12-30 21:34:18

标签: javascript pdf

我有一个.pdf文档,其中包含运行Javascript代码的自定义链接。

JS的工作部分的实际功能没有问题,但我确实有一个我无法解决的格式/显示问题:

是否有可能编写JS,在单击链接时会改变各个链接的外观?

我知道我可以通过循环遍历doc.getLinks结果并对getLinks数组的每个元素应用格式更改,以编程方式更改页面上所有链接的外观。但我不知道如何通过引用该链接在getLinks数组中的索引位置,或者通过任何其他名称引用它来引用特定的链接,因为/点击它之后,处理等等。

我认为这可能是可行的,但我不知所措。

提前感谢任何指针!

编辑:有一点需要澄清......我可以为单个按钮做我需要做的一切。也就是说,我可以手动找到按钮名称,并手动输入JS代码来更改该特定按钮的外观。要做到这一点,我需要通过几次鼠标点击来物理查找按钮的名称,然后在我的JS getField命令中硬编码该按钮的名称。这需要为每个按钮使用不同的代码。

是否可以使用相同的代码为每个按钮完成相同的功能?

我的最终目标是能够在一系列.pdf文件上重现此功能,这些文件将共同拥有数千个单独的按钮。因此,此过程的任何手动组件都将使实现变得不切实际。

我本来应该用这个问题来表达这个问题,是否有可能编写JS代码,可以自动检测调用代码的按钮的名称? (即,如何为通用按钮实现自引用功能?)

1 个答案:

答案 0 :(得分:1)

正如OP所希望的那样......

当脚本应引用其运行的字段时,要使用的字段对象为event.target

一个例子:

你有一个按钮,当点击它时,应该改变1到3之间的边框宽度.mouseUp事件将包含这段代码:

if (event.target.lineWidth == 1) {
event.target.lineWidth = 3 ;
} else {
event.target.lineWidth = 1 ;
}

或者另一个例子:当计算的文本字段中的数字为负数时,它应为红色,否则为黑色:

在该字段的Format事件中,您将添加:

if (event.value*1 < 0) {
event.target.textColor = color.red ;
} else {
event.target.textColor = color.black ;
}

这应该让我们知道如何使用event.target。