Javascript setinterval 函数在 MAC safari 上不起作用

标签 javascript safari setinterval

我想等待 30 秒,然后开始每 30 秒轮询一次 API。 我正在使用以下代码

  setTimeout(function() {
    var poll = setInterval(function() {
      self.poll()
    }.bind(self), 30000)
  }, 30000);

虽然这个东西在 Chrome IE 和 FF 上运行良好 和 window 上的 Safari 。 它不适用于 MAC safari。

任何人都可以指导我吗?

问候。

最佳答案

问题可能是您使用的 Safari 版本稍旧。

Safari 最近获得了 Function.prototype.bind。您应该做的是测试它,如果不存在则应用垫片。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility

要进行验证,请对 Function.prototype.bind 执行简单的 console.logalert。我猜它会出现未定义

关于Javascript setinterval 函数在 MAC safari 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13371939/

相关文章:

Javascript:鼠标悬停时间间隔为 2 秒时显示窗口

javascript - 使用 Javascript 动画库 VS 创建要在标题中注入(inject)的动态 <style> 标签

javascript - javascript中的事件处理程序

javascript - 访问窗口历史记录对象中的 URL

css - Safari 忽略特定点以下的 css max-width 媒体查询

mysql - 有没有更好的方法在不使用 setInterval() 函数的情况下监听 Node JS 中的表更改

javascript - 使用 jQuery .promise() 调用 clearInterval()

javascript - Angular JS 不允许 preventDefault 或 return false 处理表单提交

javascript - 提交按钮 onclick javascript 呈现从 asp.net 2.0 到 4.0 的差异

html - Safari 中的布局问题