Javascript android webkit中未调用setTimeout
在我的安卓手机(2.1)上,当手指按住触摸屏一段时间时,我看到setTimeout出现了一种奇怪的行为 这段非常简单的代码实际上工作得很好(每秒调用1次),直到我滚动窗口一段时间(2-3秒就足够了),当它停止被调用时Javascript android webkit中未调用setTimeout,javascript,android,Javascript,Android,在我的安卓手机(2.1)上,当手指按住触摸屏一段时间时,我看到setTimeout出现了一种奇怪的行为 这段非常简单的代码实际上工作得很好(每秒调用1次),直到我滚动窗口一段时间(2-3秒就足够了),当它停止被调用时 $(document).ready(function(){ spam(); }); function spam(){ console.log("cia") setTimeout(spam, 1000); } 我也有同样的问题 解决方案是将被调用函数定义为
$(document).ready(function(){
spam();
});
function spam(){
console.log("cia")
setTimeout(spam, 1000);
}
我也有同样的问题 解决方案是将被调用函数定义为变量,而不是将ist作为参数传递给setTimeout 试试这个:
var spam = function(){
console.log("cia")
setTimeout(spam, 1000);
}
$(document).ready(function(){
spam();
});
对我来说,瓦里奥特的回答不起作用。。。在我用于测试(运行v2.something)的Android手机上,唯一能让setTimeout正常工作的方法是使用以下符号:
function foo() {}
window.setTimeout(foo, 200);
这看起来很奇怪,只是传递了一个函数的名称,但经过数小时的尝试,这是它工作的唯一方式。我以前在设备上进行一些开发时遇到过这个问题,但这两种解决方案都不适合我 从我所做的阅读来看,有充分的证据表明确实发生了这种情况,但似乎没有一致的解决方法 对我有效的方法是关闭我关闭测试站点的窗口,清除缓存,退出浏览器,然后打开任务管理器并关闭进程。当我再次打开我的浏览器并进入我的测试站点时,我原来开始重新使用的标准代码 我唯一的猜测是浏览器本身进入了一种奇怪的状态,它没有运行标准的内置浏览器函数(setTimeout()或setInterval()对我都不起作用,但这两个javascript函数都存在) 我在用运行安卓2.1的三星Galaxy S进行测试,我不知道这是否会对其他人有所帮助,但这对我来说很有用。试试这个
function spam(){
console.log("cia")
setTimeout("spam()", 1000);
}
设置超时:
/**
@param {String|Function} vCode
@param {Number} iMillis
@return Number
*/
window.setTimeout = function(vCode,iMillis) {};
我尝试了这个,它解决了我的问题
setTimout(function(){aFunction(text);}, 200);
有趣的观察。但具体问题是什么?你在找解释吗?解决方法?将其设置在变量中使其适合我,谢谢!