这个setTimeout在Firefox中运行得很好,但是在Chrome中timeoutTrigger函数什么都没发生,包括alert。
var $this = $('.active-more');
function timeoutTrigger() {
$this.closest(".container").nextAll(".container:first").find(".description:first").removeClass('hide');
$this.closest(".container").nextAll(".container:first").find(".back:first").find("img.portfolio").remove();
alert("is this thing on?");
}
setTimeout(function(){timeoutTrigger()},400)
3条答案
按热度按时间qq24tv8q1#
将
setTimeout
语句切换为以下语句:setTimeout(timeoutTrigger,400);
你写的是当你调用的函数有一个参数的时候,你还少了一个分号。vsikbqxv2#
我们在Chrome上的settimeout函数遇到了问题。我们希望每10秒运行一次API检查,以便在数据发生变化时更新页面内容。但是,尽管我们将settimeout函数设置为每10秒运行一次,但如果浏览器处于非活动状态,Chrome无法正确运行它。(而Safari即使处于非活动状态,也能正确运行代码)。
我们的实验表明,Chrome在不活动时运行我们的功能大约一分钟或更长时间,所以每分钟检查更新并不会破坏我们的代码。
但是我们有第二个函数,它每分钟运行一次,每分钟在本地更改一次内容。具体来说,我们更改了页面内容中显示的游戏的等待时间和播放时间。因此,由于我们不能依赖Chrome在确切的分钟运行,我们的解决方案是在代码第一次运行时保存,并检查日期之间的分钟数,并相应地更改等待时间和播放时间。
trnvg8h33#
Google更改了内容安全政策,这会影响在某些浏览器中使用setTimeout()。https://developer.chrome.com/extensions/contentSecurityPolicy