JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

Posted

技术标签:

【中文标题】JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用【英文标题】:JavaScript doesn't work in Safari but does in Firefox and Chrome 【发布时间】:2020-03-25 03:54:40 【问题描述】:

我有一个要使用 Parsley 验证的表单。提交按钮具有以下 javascript 代码,以便通过 css 进行动画处理。这在 Firefox 和 Chrome 中完美运行,但在 Safari(桌面和 ios)中什么也不做。表单验证得很好,但动画没有运行。

我追踪到返回 true;陈述。如果我将其设置为返回 false; Safari 可以正常工作,只是没有提交表单。如果我将其设置为返回 true;它适用于我测试过的所有地方,除了 Safari。

我已经阅读了很多关于 Safari 与 jQuery 的工作方式不同的文档,因此必须修改 JS 代码才能使其真正成为跨浏览器。我怎样才能修改它以在任何地方工作?

<script type="text/javascript">
  $(function() 
    $('#login-form').parsley().on('form:submit', function() 
      $(".loginbutton").addClass("loginactive");
      $(".loginbutton").css("background", "transparent");

      setTimeout(function() 
        $(".loginbutton").addClass("loginsuccess");
        $(".loginbutton").css("background", "none repeat scroll 0 0 #ffffff");
      , 3700);
      return true;
    );
  );
</script>

【问题讨论】:

尝试在 setTimeout 中使用bind(),例如 setTimeout(function() ... .bind(this),250); 不会改变任何东西来添加它。感谢您的尝试。 【参考方案1】:

答案是 Safari 将停止加载另一个对象(python 脚本、另一个 url 等)时的所有动画,并且您基本上无能为力。它只会显示css动画的第一帧。所以,我所做的是修改登录按钮,使其在提交表单时看起来与显示登录不同。

【讨论】:

以上是关于JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

javascript window.open 在 safari 和 chrome 中不起作用

Javascript clipboard.readText() 在 IOS Safari 中不起作用?

Javascript HTML5 play() 在 ios9 Safari 中不起作用?

Sharepoint 2013 站点 NTLM 身份验证 javascript doPostBack 在 Safari 和 iPad 中不起作用

Flexbox 中心在 Safari 中不起作用