使用Safari无法在生产站点上加载JavaScript

时间:2015-07-30 19:43:35

标签: javascript jquery ruby-on-rails safari haml

JavaScript在Chrome上的本地制作工作正常,但是当我在Safari中尝试时,它并没有。我认为解决方案是在Safari上启用JavaScript,但我确实启用了它,并且它在Safari上本地工作。它只是不适用于生产。我认为我的生产方式存在问题,但我的生产环境正在开发Chrome。

我在jQuery Turbolinks中使用Rails。

我的application.js:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap
//= require social-share-button
//= require zeroclipboard
//= require google_analytics
//= require turbolinks
//= require_tree .

未正确加载的示例JS文件:

$(document).ready(function() {
  var referLinkClip = new ZeroClipboard($("#referral-text-button"))
  var referCodeClip = new ZeroClipboard($("#referral-code-button"))
  var embedClip = new ZeroClipboard($("#embed-text-button"))
  alert('foobar');
  $(".copy-button").hover(function(){
    $(this).css('background-color', '#7b7b7b');
    }, function(){
    $(this).css("background-color", '#949494');
  });
  $(".copy-button").click(function(){
    $(this).css('outline', 'none');
    $(this).css('background-color', '#2d3538');
    setTimeout(function(){
      $(this).css('background-color', '#949494');
    }, 100);
  });
});

我使用这个JS(HAML)的观点:

%button#referral-code-button.plan-show.round-corners-8px.col-md-2.referral-links.copy-button{:'data-clipboard-target'=>'referral-code'}
  Copy code
.plan-show.round-corners-8px.col-md-8.referral-links.light-text
  Your affiliate code:
  %span#referral-code.medium-text= "#{current_user.affiliate_code}"

这一切在Chrome本地和生产中都可以正常工作,但在Safari中不能生产。我已使用bundle exec rake assets:precompile编译了我的资产,但没有任何区别。

有什么想法吗?我很难过。

修改

更多可能有用的信息...最近,即使在Chrome上,除非刷新页面,否则我无法正确加载JS。在我提供的JS文件中,$(".copy-button").click函数有效(按钮更改颜色),但$(".copy-button").hover都不起作用,ZeroClipboard对象也没有初始化。我在我的application.html负责人中加入了JS,=javascript_include_tag 'application'

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题(请参阅Safari iOS not loading Javascript file?),发现原因是Safari在使用HTTP / 0.9进行的请求中自动进行沙盒处理(阻止所有JS执行)。

有关详细信息,请在另一个帖子中查看我的答案。