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

如何在Bootstrap 5模态框中通过iframe传递动态ID加载指定页面

解决方案

方法一:利用Bootstrap模态框原生事件(纯JS)

无需修改现有按钮结构,直接通过监听Bootstrap模态框的show.bs.modal事件实现:

  1. 给iframe添加ID:修改模态框内的iframe标签,增加唯一ID方便定位:
<div class="modal-body">
    <iframe id="newsIframe" src="QuickView.aspx?id=3"></iframe>
</div>
  1. 添加JavaScript逻辑:在页面底部(或外部JS文件)加入以下代码:
// 获取模态框DOM元素
const modal = document.getElementById('exampleModal');

// 监听模态框即将显示的事件
modal.addEventListener('show.bs.modal', function(event) {
    // 获取触发模态框的按钮
    const triggerBtn = event.relatedTarget;
    // 提取按钮的data-id值
    const newsId = triggerBtn.getAttribute('data-id');
    // 获取iframe元素
    const iframe = this.querySelector('#newsIframe');
    // 更新iframe的src属性,传入对应新闻ID
    iframe.src = `QuickView.aspx?id=${newsId}`;
});

方法二:jQuery版本(若项目已引入jQuery)

如果项目使用了jQuery,可用更简洁的代码实现:

  1. 同样给iframe添加ID(同方法一第一步)

  2. 添加jQuery代码:

$('#exampleModal').on('show.bs.modal', function(event) {
    // 获取触发按钮的data-id
    const newsId = $(event.relatedTarget).data('id');
    // 更新iframe的src
    $(this).find('#newsIframe').attr('src', `QuickView.aspx?id=${newsId}`);
});

原理说明

Bootstrap的show.bs.modal事件会在模态框即将显示时触发,event.relatedTarget属性指向触发模态框的元素(即点击的Readmore按钮),通过该元素可获取data-id值,再动态修改iframe的src属性,就能加载对应ID的新闻详情页面。

内容的提问来源于stack exchange,提问作者iAm.Hassan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:15:29