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

Chrome控制台如何通过JavaScript切换至my_frame等不同JS上下文

控制台执行上下文界面截图

切换控制台执行上下文到my_frame的方法

控制台默认处于top页面上下文时,有两种方式可以完成切换/等效执行:

  • 使用控制台内置快捷命令直接切换(效果和手动点击上下文下拉菜单选择my_frame完全一致)
    现代Chromium内核浏览器(Chrome、Edge等)、Firefox的控制台都内置了专属的cd()辅助命令,专门用于切换控制台执行上下文,直接在控制台执行以下代码即可:

    // 先获取目标iframe的window引用,选择器可根据你的iframe实际属性调整
    const myFrameWin = document.querySelector('iframe[name="my_frame"]').contentWindow;
    // 调用内置cd命令切换上下文
    cd(myFrameWin);
    

    执行完成后控制台顶部的上下文选择器会自动选中my_frame,后续输入的所有代码都会默认在my_frame的作用域下运行。

    注意:cd()是开发者工具控制台专属的调试命令,不属于JavaScript原生标准API,不能写在页面业务代码中使用。

  • 不切换下拉菜单,直接在my_frame上下文执行代码
    如果你只是需要在帧上下文运行代码,不需要修改控制台的选中状态,可以直接通过iframe的window引用执行代码:

    const myFrameWin = document.querySelector('iframe[name="my_frame"]').contentWindow;
    // 用帧window的eval方法执行代码,运行上下文完全处于my_frame内
    myFrameWin.eval(`
      // 此处填写你需要在my_frame中运行的任意代码
      console.log('当前执行上下文window匹配:', window === myFrameWin);
    `);
    

    如果需要简化书写,也可以用with语句临时绑定作用域,省去每次写前缀的麻烦:

    const myFrameWin = document.querySelector('iframe[name="my_frame"]').contentWindow;
    with(myFrameWin) {
      // 块内代码默认优先从my_frame的作用域查找变量、调用方法
      console.log('当前帧地址:', location.href);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 19:29:01