You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多PDF嵌入iframe时openFullscreen()全屏功能异常的解决求助

解决多PDF iframe全屏按钮对应问题

当前代码的问题在于openFullscreen()函数固定获取第一个带有fullscreenframe类的iframe,导致所有按钮都只能触发首个PDF的全屏效果。要让每个按钮对应自身关联的iframe,可通过以下两种方案修改:

方案一:传递iframe ID给全屏函数

通过给每个按钮的点击事件传入对应iframe的ID,让全屏函数精准定位目标元素:

  1. 更新iframe初始化代码,生成按钮时传入对应ID:
jQuery(document).ready(function($){
    $(".node--view-mode-full iframe[src*='.pdf']").each(function (index) {
        $(this).addClass('fullscreenframe');
        $(this).attr('id', 'fullscreen-'+index);
        // 把当前iframe的ID作为参数传入openFullscreen
        $('<button onclick="openFullscreen(\'fullscreen-'+index+'\')">Open in Fullscreen Mode</button>&nbsp;<strong>Tip:</strong> Press the "Esc" key to exit full screen.<br>').insertBefore(this);
    });
});
  1. 修改openFullscreen函数,根据ID获取目标iframe:
function openFullscreen(frameId) {
  var elem = document.getElementById(frameId);
  if (!elem) return; // 避免找不到元素时报错
  if (elem.requestFullscreen) {
    elem.requestFullscreen();
  } else if (elem.webkitRequestFullscreen) { /* Safari */
    elem.webkitRequestFullscreen();
  } else if (elem.msRequestFullscreen) { /* IE11 */
    elem.msRequestFullscreen();
  }
};

方案二:使用jQuery事件绑定(推荐)

直接在生成按钮时绑定点击事件,无需全局函数,逻辑更紧凑且避免内联事件的弊端:

jQuery(document).ready(function($){
    $(".node--view-mode-full iframe[src*='.pdf']").each(function (index) {
        var $targetFrame = $(this).addClass('fullscreenframe').attr('id', 'fullscreen-'+index);
        // 创建按钮并绑定点击事件,直接操作当前关联的iframe
        $('<button>Open in Fullscreen Mode</button>&nbsp;<strong>Tip:</strong> Press the "Esc" key to exit full screen.<br>')
            .insertBefore($targetFrame)
            .on('click', function() {
                var elem = $targetFrame[0];
                if (elem.requestFullscreen) {
                    elem.requestFullscreen();
                } else if (elem.webkitRequestFullscreen) { /* Safari */
                    elem.webkitRequestFullscreen();
                } else if (elem.msRequestFullscreen) { /* IE11 */
                    elem.msRequestFullscreen();
                }
            });
    });
});

内容的提问来源于stack exchange,提问作者Артем

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:21:07