`
slbszq
  • 浏览: 267809 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

“不能执行已释放 Script 的代码”JS报错(IE)解决方法

阅读更多

因为用了IFrame出现的问题,应用场景:

在子页面(iframe中的页面)中给主页面“保存”按钮添加点击事件,因多次在iframe中加载页面造成js错误。第一次执行时没有问题,第二次以后都不能正常执行click处理函数,每次在IE调试时报“不能执行已释放 Script 的代码”,始终找不到原因,看了网上也没有合适的解决方法(http://www.jb51.net/article/11311.htm 这个还比较靠谱,但是还是没有解决),最后突然想到了,因多次给iframe加载页面都会给主页面“保存”按钮重新添加click处理函数,因为主页面始终存在,子页面在变化,造成给主页面“保存”按钮多次添加处理函数(是在子页面定义的),这样在第二次加载iframe后点击”保存“按钮会先执行第一次绑定的click处理方法(但是该页面已经不存在了),是出现报错的主要原因,然后突然想到了jQuery的unbind()方法

解决办法:

在子页面给父页面按钮添加click处理函数前, 先给父页面按钮调用unbind()方法取消以前的绑定事件,然后再绑定处理函数。这样每次执行的都是最新的处理函数,就不会出现因找不到原来的处理函数造成这样的错误了。

分享到:
评论

相关推荐

    解决ie11 SCRIPT5011:不能执行已释放Script的代码问题

    在使用IE11浏览器进行网页开发的过程中,开发者可能会遇到一个特定的错误提示:SCRIPT5011:不能执行已释放Script的代码。这个问题通常发生在父页面中嵌套有iframe子页面的场景下。错误的原因在于,父页面初始化时...

    完美解决IE9浏览器出现的对象未定义问题

    然而,这种方法并不总是完美的解决方案,因为它可能会引入其他IE8特有的问题,而且不是长久之计。对于长期的解决方案,最好是修改代码以适应更现代的浏览器标准。 此外,针对特定的JavaScript对象,如jQuery、Array...

    VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决

    问题现象 项目使用vue/cli3脚手架搭建的前端项目,vue版本为...包含的代码中有ES6的语法,IE不支持,查了网上很多资料都说使用babel-polyfill来解决。 现象一:IE不支持ES6语法 Vuex requires a Promise polyfill

    解决ie浏览器不兼容ES6的js文件browser-polyfill.min.js

    解决ie浏览器不兼容ES6的js文件browser-polyfill.min.js

    JavaScript利用append添加元素报错的解决方法

    在IE浏览器上: Uncaught HierarchyRequestError:Failed to excute ‘appendChild’ on ‘Node’:The new child element contains the parent. 在谷歌浏览器上: SCRIPT5022:DOM Exception:HIERARCHY_REQUEST_ERR(3)...

    browser.min.js和browser-polyfill.min.js.rar

    这是因为`browser.min.js`很可能包含了一种或多种技术,如Babel,用于将ES6代码转译为ES5或其他更老的JavaScript语法,使得这些代码能在不支持新特性的环境中执行。 然而,仅仅转译ES6代码并不足以处理所有兼容性...

    详解vue 兼容IE报错解决方案

    Babel 默认只转换新的 JavaScript 语法(如箭头函数),而不转换新的 API ,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等新的对象或者方法。 例如 Promise 、新的原生方法如 String....

    ie8下修改input的type属性报错的解决方法

    在其他现代浏览器如Chrome、Firefox以及IE9及更高版本中,可以正常地通过JavaScript或jQuery的`attr()`方法改变`type`属性,但在IE8中,这种方法会导致错误。 问题的场景是:当用户选择一个复选框(`...

    解决'JSON'未定义 报错,引入json2.js

    将JavaScript对象类型的参数通过JSON.stringify转换成字符串传递时,IE5、6、7、8...解决方法:<script type="text/javascript" src="/路径/json2.js"></script>或者<script src="()%>/passripts/json2.js"></script>

    引入JS文件IE6报语法错误或缺少对象问题的解决方法

    需要注意的是,虽然在某些情况下修改charset和文件编码可以解决IE6的问题,但可能还需要检查其他因素,比如JS代码本身是否存在对IE6不友好的特性。例如,某些ES5以上的语法在IE6中不支持,或者使用了未经polyfill...

    百度UEDITOR 内网上传视频支持IE8的方法

    <script language="javascript" type="text/javascript" src="/Data/ueditor/third-party/video-js/video.js"></script> <script src="/Public/2017-5-11/html5media.min.js"></script> 上边是bootcss自带的,...

    兼容IE浏览器的前端RSA加密js

    用于兼容IE浏览器使用RSA加密的工具类,直接引入,并且使用new ecrypt()即可使用,官网的js会倒是IE浏览器报错SCRIPT1010错误,原因为逗号(,)关键字(default,delete)等。

    JAVASCRIPT在页面加载时的执行顺序[参考].pdf

    IE 在 `document.write()` 时,并未等待加载 SRC 中的 JavaScript 代码完毕后,才执行下一行,所以导致 2 先弹出,并且执行到 `document.write('alert("我是" + tmpStr)')` 调用 tmpStr 时,tmpStr 并未定义,从而...

    javascript代码在ie8里报错 document.getElementById(…) 为空或不是对象的解决方法 原创

    ie8中对于声明文档类型更加严格如下面的代码。... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]可以看到这段代码在ie7与ie8中都是可以运行的,下面的代码我们加入声明文档 代码如下:<!DOCTYPE ht

    Javascript代码在页面加载时的执行顺序介绍

    解决此问题的一个方法是将`document.write()`的代码拆分,确保每次执行都不会阻断或干扰到外部资源的加载。 总之,正确理解和管理JavaScript在页面加载过程中的执行顺序,有助于编写出更加高效且易维护的代码。

    WebCamJs实现拍照预览上传

    由于IE9不支持getUserMedia,WebCamJs会检测到这个情况并自动切换到Flash模式。需要注意的是,用户需要安装Flash Player插件,且浏览器设置中必须允许Flash运行。 实现WebCamJs的步骤如下: 1. **引入WebCamJs库**...

    快速解决Vue项目在IE浏览器中显示空白的问题

    总的来说,解决Vue项目在IE浏览器中显示空白的问题,关键在于确保项目中的现代JavaScript代码能够被老旧浏览器理解并执行。通过引入`babel-polyfill`和其它必要的垫片库,我们可以使Vue项目在更广泛的浏览器环境中...

    js在html中的加载执行顺序.docx

    - **解决办法**:为了避免此类问题,可以将相关代码拆分为多个`<script>`标签,确保外部文件加载完成后再执行其他脚本逻辑。 通过以上分析可以看出,理解和掌握JavaScript在HTML文档中的加载与执行顺序对于编写...

Global site tag (gtag.js) - Google Analytics