1

在我的 application.js 中,我有外部 js 文件的清单

//= 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 中运行我的网络应用程序时,我收到此错误:

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

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

4

2 回答 2

0

我也在为此苦苦挣扎。我在 jwplayer-rails gem 上做了一些工作。我仍在等待我的拉取请求通过。现在请按照本自述文件中的信息启动并运行它。在此处阅读有关我的答案的更多信息。

于 2014-04-10T18:05:19.263 回答
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 抛出错误,但在他们最终修复它之前,这至少可以让事情正常进行。

这令人沮丧并且远非理想的解决方案,但它在我的应用程序中有效。

于 2013-02-27T19:13:21.277 回答