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

如何在媒体查询变化时自动切换iframe的src属性值?

解决iframe随媒体查询即时切换内容的问题

你的代码目前仅在页面首次加载时执行一次媒体查询判断,因此窗口尺寸变化后需要刷新页面才会切换iframe内容。要实现即时切换,需要监听媒体查询的状态变化事件,具体修改如下:

修改后的代码

document.addEventListener("DOMContentLoaded", function () {
  const query = window.matchMedia("(max-width:1224px)");
  const iframe = document.querySelector("main>iframe");

  // 封装判断逻辑为复用函数
  function updateIframeSrc() {
    if (query.matches) {
      iframe.setAttribute("src", "/HTML/card.html");
    } else {
      iframe.setAttribute("src", "/HTML/about.html");
    }
  }

  // 页面加载时初始化一次
  updateIframeSrc();

  // 监听媒体查询状态变化,即时更新iframe内容
  query.addEventListener("change", updateIframeSrc);
});

关键说明

  • 将切换逻辑封装成updateIframeSrc函数,既可以在页面加载时初始化,也可以在尺寸变化时重复调用,避免代码冗余。
  • 通过query.addEventListener("change", ...)监听媒体查询的状态变化:当窗口尺寸跨越1224px阈值时,会自动触发change事件,调用updateIframeSrc函数切换iframe的源地址。
  • 这种方式比监听window.resize事件更高效,因为只有当媒体查询的匹配状态发生变化时才会触发,而不是每次窗口尺寸变动都执行判断。

内容的提问来源于stack exchange,提问作者Heong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:30:03