lyl615 2024-07-05 23:06 采纳率: 33.3%
浏览 10
已结题

页面初次加载时,JS调用对象可以调用成功,但是一旦跳转到另一个页面,再跳转回来后这个对象就显示undefind了,调用也调用不了了,什么原因?

页面初次加载时,JS调用对象可以调用成功:

img

img

调用成功后,跳转到另一个页面,再跳转回来后,就调用不了报错了,console.log(window.PDAJsBridge)显示undefind,这是什么原因啊

  • 写回答

25条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-07-05 23:06
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    你遇到的问题是在页面跳转后,JavaScript对象(在这里是window.PDAJsBridge)变为undefined。这种情况通常是由以下几个原因导致的:

    1. 对象生命周期问题:在某些情况下,当你跳转到另一个页面时,当前页面的JavaScript环境(包括其对象和变量)可能会被销毁或重置。当你再次返回到原来的页面时,原来的环境可能已经不再存在,因此你的对象window.PDAJsBridge变成了undefined。这可能是由于浏览器的内存管理机制或者是由于某些特定的页面跳转设置导致的。
    2. 页面重新加载或刷新:在跳转过程中,如果页面被重新加载或刷新,任何在页面加载时初始化的对象和变量都会被重置。在这种情况下,即使你返回到原来的页面,你的对象也可能不再存在。
    3. 异步代码执行时序问题:由于你使用的是异步函数(如setTimeout),并且在页面跳转过程中可能会发生各种事件和动作,可能导致你的代码在执行时序上出现问题。例如,你的对象可能在代码尝试调用它之前已经被销毁或重置。

    解决方案:

    • 确保对象持久性:如果可能的话,确保你的对象在页面跳转时也能保持其状态。这可能涉及到使用浏览器存储(如localStorage或sessionStorage)来保存对象的状态,并在页面跳转后重新初始化对象。
    • 检查页面跳转逻辑:确保你的页面跳转逻辑不会导致当前页面的JavaScript环境被销毁或重置。这可能涉及到检查浏览器的页面跳转设置或与页面跳转相关的代码逻辑。
    • 使用事件监听确保代码执行顺序:对于异步代码,确保你的代码在尝试调用对象之前已经正确初始化。你可以使用事件监听来确保你的代码在适当的时机执行。

    不幸的是,没有具体的代码示例来直接解决你的问题,因为这取决于你的应用程序的具体实现和架构。但希望上述分析和建议能帮助你找到问题的根源并找到解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 创建了问题 7月5日