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'
答案 0 :(得分:0)
我遇到了类似的问题(请参阅Safari iOS not loading Javascript file?),发现原因是Safari在使用HTTP / 0.9进行的请求中自动进行沙盒处理(阻止所有JS执行)。
有关详细信息,请在另一个帖子中查看我的答案。