我有一个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是什么,而是使用Constructor *恢复为代码段内的内容。因此,例如,在调试对象的 public 方法(例如sampleObject.getResource(“a”);)的间隔中,我一直在调试它。
痕迹回来像:
sampleObject = [Object] //Correct
sampleObject = [Object]
然后随机执行此操作:
sampleObject = function(){
//swfobject dom load event
}
基本上是构造函数*中的代码。
然后这会导致我的代码抛出引用错误,因为未定义我在整个过程中使用的 public 属性/方法,例如getResource ...
尝试过的事情:
* CONSTRUCTOR-不确定是否将其归类为构造函数,但这对我来说似乎就是如此。
**很遗憾,我无法公开发布我的代码,因为它是商业项目的一部分,而且内容相当广泛。...但是,有什么建议或有人遇到过类似的问题吗?
谢谢!
最佳答案
感谢您上面的所有评论。那为我指明了正确的方向。
问题似乎是IOS 7似乎随机失去了javascript对象的范围,并且因为我们没有专门将sampleObject分配给窗口,所以它一直没有工作。
因此,解决我的问题的方法只是更改:
//分配对象
sampleObject = new sampleObject();
至
//分配对象
window.sampleObject = new sampleObject();