2012-11-29 55 views
1

HTML5 jwplayer JS在我的application.js,我有明显的外部JS文件这样Rails 3中排除清单

//= require jquery 
//= require jquery-ui-1.8.17.custom.min 
//= require jquery_ujs 
//= require jquery-mousewheel.js 
//= require jquery-fileupload 
//= require jquery-fileupload-ui 
//= require_self 
//= require bootstrap.min.js 
//= require rails.validations 
//= require rails.validations.custom 
//= require jwplayer 
//= require jwplayer.html5 
//= require jwplayer-license 

当我在IE8上运行我的Web应用程序,我得到这个错误:

Message: 'n.sheet.cssRules' is null or not an object 

经过一番搜索之后,我将错误追溯到jwplayer.html5.js文件。当IE8被检测到时,有没有办法在application.js中排除这个文件?

回答

0

我遇到了相同的设置(Rails 3,JWPlayer 6.1.x等)完全相同的问题。对于它的价值,升级到JWPlayer 6.2.x没有解决问题

我没有解决方案,但我有一个解决方法。我把JWPlayer了我的application.js中,加入<%= yield :javascripts %>我application.html.erb和移动JWPlayer包括只在那里我需要他们的观点:

<% content_for :javascripts do %> 
    <%= javascript_include_tag "jwplayer" %> 
    <%= javascript_include_tag "jwplayer.html5" %> 
<% end -%> 

注意,在我的情况,我也有将这些文件添加到config.assets.precompile

基本上,发生的事情是,如果页面上没有JWPlayer的实例,IE8(大概是7)会吓坏了。理想的解决方案实际上是让JWPlayer本身检查是否是这种情况,而不是让IE抛出一​​个错误,但是直到他们将它修复到最终,这至少可以让事情起作用。

这是令人沮丧,远非理想的解决方案,但它在我的应用程序中工作。

0

我也在为此苦苦挣扎。我在jwplayer-rails gem上做了一些工作。我仍然在等待我的拉动请求通过。现在请按照this readme中的信息启动并运行。阅读更多关于my answer here