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

使用iframe-resizer时遭遇未捕获TypeError错误求助

问题原因与解决思路

嘿,这个错误其实一眼就能看穿——报错里的Uncaught TypeError: $ is not a function直接点明了核心问题:你在resizedCallback回调函数里使用了jQuery的$符号,但当前页面环境里jQuery要么没正确加载,要么$的命名被其他库冲突覆盖了。

下面给你几个具体的排查和解决方向:

  • 先确认jQuery是否已正确引入
    打开浏览器F12的「网络」面板,刷新页面后搜索jquery,查看是否有成功加载的jQuery资源。如果搜不到,说明你还没在页面中引入jQuery文件,需要先添加引用,且要保证jQuery的加载顺序在所有用到$的代码之前。

  • 检查jQuery的加载顺序
    就算你引入了jQuery,要是它加载在iframeResizer初始化代码或者resizedCallback函数之后,当回调执行时$还未被定义,同样会触发这个错误。所以要把jQuery的<script>标签放在所有依赖$的代码前面。

  • 解决$的命名冲突问题
    如果页面同时使用了其他会占用$符号的库(比如Prototype),jQuery的$会被覆盖。这种情况有两种解决办法:
    一是直接用jQuery全称代替$,比如把$('#target-element')改成jQuery('#target-element');
    二是使用jQuery的noConflict模式释放$的控制权:

    var jq = jQuery.noConflict();
    // 之后在回调里用jq代替$
    function resizedCallback(data) {
      jq('#your-element').doSomething();
    }
    
  • 检查你的resizedCallback代码
    直接查看报错指向的(index):888行代码,确认里面的$调用有没有拼写错误,或者是否在未引入jQuery的作用域中使用了$。

另外提一句:iframe-resizer本身并不依赖jQuery,所以这个错误和你使用的iframe-resizer版本无关(你下载最新版的操作没问题),完全是自定义回调里的jQuery使用问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:35:46