• 不能执行已释放script的代码


    “当一个页面关闭时会自动释放页面的js”

    检查程序是否有页面的关闭或转向

    场景:页面有a和b两个框架页iframe,在b页面中通过js将一个函数引用(函数指针)传入到a页面并保存在a页面的一个变量中,a页面可以通过这个引用操作b页面或执行b页面的一些程序,记住:此时在a页面中的变量保存的是b页面某函数的指针(内存地址),当b页面刷新或重定向后由于b页面重新构建,所以b页面中的函数指针就发生了变化,但a中仍然保存着b页面刷新前传过来的指针(内存地址),这时a页面中变量通过所指向的指针地址就无法访问到b页面中对应的函数了(因为函数指针地址已经发生了变化,及原来的内存指针已经释放),这样在执行时就会出现“不能执行已经释放的Script代码”的错误。

    解决办法:在a页面中加上容错处理,当引用出现错误时要将保存的引用(函数指针)清空或指向一个默认的函数。另外在b页面再次载入时要重新给a页面传送函数引用,这样就不会出现这样的错误了。 

  • 相关阅读:
    450. 删除二叉搜索树中的节点
    958. 二叉树的完全性检验
    5211. 概率最大的路径(197)
    5447. 石子游戏 IV
    174. 地下城游戏
    Codeforces Round #622 (Div. 2).C2
    Codeforces Round #624 (Div. 3) F. Moving Points 题解
    竞赛头
    离散化
    线段树
  • 原文地址:https://www.cnblogs.com/xuhj/p/4268138.html
Copyright © 2020-2023  润新知