js获取当前页内的iframe页面的元素

遇到一个需求,项目使用的是pdf.js, 在显示pdf的过程中,需要点击一个下载按钮来下载文件。但是pdf.js本身就带有下载按钮,(即有下载功能)。所以我想点击父页面的按钮,触发子页面iframe的下载按钮。

1. 按钮页面

下载按钮

2.(上方)下载按钮
<button type="text" icon="fa fa-save" label="下载" (click)="download()"></button>
3.iframe所在位置
<p-tabPanel header="PDF" leftIcon="fa fa-language">
    <div class="ui-grid ui-grid-pad" style="height:100%">
       <div class="ui-grid-col-12 ui-widget-content border-spe-right" style="height:100%">
           <iframe id="pdfConcent" src="/assets/other/pdfjs/viewer.html"
                                                style="width:100%;height:100%;">
           </iframe>
       </div>
    </div>
</p-tabPanel>
4.download()事件
download() {
      console.log("下载被点击");

      let d = window.frames[0].document.getElementById("download");
      d.click();

      console.log(d);
      console.log("下载被点击结束");
    }
5.(下方)pdf.js下载按钮
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView" title="Download" tabindex="54" data-l10n-id="download">
  <span data-l10n-id="download_label">Download</span>
</button>
6.结果图

下载成功

总结

由于iframe内元素不能直接获取,所以要麻烦一些。(首先要保证页面加载完毕,按需使用window.onload)
网上其他“js获取当前页内的iframe页面的元素”的方法都不适用,例如使用frameObject.contentWindow或者直接使用getElementById()。
应使用

 	let d = window.frames[0].document.getElementById("download");
    d.click();
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卸载引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值