gpt4 book ai didi

javascript - 奇怪的 Javascript IOS 7 问题

转载 作者:行者123 更新时间:2023-11-30 06:28:30 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,它在所有桌面浏览器和移动设备上都运行良好,但是从 IOS 7 开始,我遇到了一个奇怪的问题。

示例:

我正在设置一个像

这样的对象
(function(){
//CONSTRUCTOR*
sampleObject= new function(){
alert("loaded constructor "+ new Date().getTime()); //only outputted once
//swfobject dom load event
}


...//functions and propeties related to sampleObject

})();

//ASSIGNING THE OBJECT
sampleObject = new sampleObject();
alert("finished assigning object "+ new Date().getTime()); //only outputted once

问题:

在 ios 7 上,它似乎随机丢失了 sampleObject 是什么,而是恢复到带有构造函数 * 的代码片段中的内容。因此,例如,我一直在对我的对象调用公共(public)方法的时间间隔进行调试,例如 sampleObject.getResource("a");

痕迹像这样回来了:

sampleObject = [Object] //Correct
sampleObject = [Object]

然后随机执行此操作:

sampleObject = function(){
//swfobject dom load event
}

这基本上是构造函数*中的代码。

这会导致我的代码抛出一个引用错误,因为我在整个过程中使用的公共(public)属性/方法(例如 getResource)都没有定义...

尝试过的事情:

  • 代码仅启动一次(警报使用单个日期/随机字符串触发一次)
  • 我确定了由于这个问题而发生错误的地方,包裹在 try/catch 周围,但是尽管代码显然失败了,但它没有进入 catch。
  • 在不同的 IOS 版本上试过,除了 IOS 7 之外都很好

*CONSTRUCTOR - 不确定这是否属于构造函数,但在我看来就是这样。

** 不幸的是,我不能公开发布我的代码,因为它是商业项目的一部分,而且范围很广……但是有什么建议或者有没有人有任何类似的问题?

谢谢!

最佳答案

感谢以上所有评论。这给我指明了正确的方向。

问题似乎是 IOS 7 似乎随机丢失了 javascript 对象的范围,并且因为我们没有专门将 sampleObject 分配给窗口,所以它不能一直工作。

因此,解决我的问题的方法很简单:

//分配对象sampleObject = new sampleObject();

//分配对象window.sampleObject = new sampleObject();

关于javascript - 奇怪的 Javascript IOS 7 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19498262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com