我有一个在所有桌面浏览器和移动设备上运行良好的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,而是使用构造函数*恢复到代码段内的内容。所以例如,我一直在调试它,我在我的对象上调用一个公共方法,如sampleObject.getResource(“a”);
这些痕迹会像以下一样回归:
sampleObject = [Object] //Correct
sampleObject = [Object]
然后随机执行此操作:
sampleObject = function(){
//swfobject dom load event
}
这基本上是构造函数中的代码*。
这会导致我的代码抛出引用错误,因为我没有定义我在整个过程中使用的公共属性/方法,例如getResource ...
尝试的事情:
* CONSTRUCTOR - 不确定这是否被归类为构造函数,但这就是我所看到的。
**遗憾的是我不能公开发布我的代码,因为它是商业项目的一部分并且非常广泛......但是有任何建议或有任何人有类似的问题吗?
谢谢!
答案 0 :(得分:0)
感谢上面的所有评论。这指向了我正确的方向。
问题似乎是IOS 7似乎随机丢失了javascript对象的范围,因为我们并没有专门将sampleObject分配给窗口,所以它一直没有工作。
因此解决我的问题只是改变:
//指派对象 sampleObject = new sampleObject();
到
//指派对象 window.sampleObject = new sampleObject();