【问题标题】:Javascript function to show a hidden button with setTimeout not working in a PDFJavascript函数显示带有setTimeout的隐藏按钮在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 页面加载延迟后显示隐藏按钮所需的功能。提前谢谢!

【问题讨论】:

    标签: javascript 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2019-10-08
      相关资源
      最近更新 更多