Javascript函数显示带有setTimeout的隐藏按钮在PDF中不起作用
Posted
技术标签:
【中文标题】Javascript函数显示带有setTimeout的隐藏按钮在PDF中不起作用【英文标题】:Javascript function to show a hidden button with setTimeout not working in a PDF 【发布时间】:2018-06-26 14:54:26 【问题描述】:我有一个交互式 PDF,其中一个名为“Nav_Forward_Page_14”的表单域按钮设置为隐藏。我希望按钮在包含按钮的页面加载后 10 秒可见;等等页面属性(对于带有按钮的页面),我尝试在页面加载时添加以下 javascript,但两个脚本都不起作用:
setTimeout(function()
this.getElementById("Nav_Forward_Page_14").style.display = "inline";
, 10000);
想可能是我的功能不对,我也试过了:
setTimeout(function()
this.getElementById("Nav_Forward_Page_14").display = display.visible;
, 10000);
请帮助我更正在 PDF 页面加载延迟后显示隐藏按钮所需的功能。提前谢谢!
【问题讨论】:
【参考方案1】:您可以使用document.body.onload = function()
,它会在加载 DOM 主体后执行,这与将脚本放在 <body>
标记的底部相同。
为了不浪费时间,我做了延迟3 seconds
,你可以自己编辑。
这是一个更简化的例子:
var delay = 3000;
document.body.onload = function()
setTimeout(() =>
document.querySelector('button').style.display = 'inline';
, delay);
button
display: none;
<button>Next page</button>
【讨论】:
谢谢亚历克斯。我已经尝试了您的建议,但 PDF 中的某些内容仍然无法正常工作。由于我的按钮已经定义为页面上的表单字段按钮并设置为隐藏,我可以在 document.body.onload 函数中为'Nav_Forward_Page_14'子'按钮'吗?【参考方案2】:当作为 Javascript 添加到页面打开时,它可以在 PDF 中工作:
function runImage()
this.getField("Nav_Forward_Page_14").display = display.visible
run = app.setTimeOut("runImage()", 10000);
【讨论】:
以上是关于Javascript函数显示带有setTimeout的隐藏按钮在PDF中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
同步和异步 setTimeou(异步) async和await promise(疑惑点)