video.js 在 Internet Explorer 中抛出 InvalidStateError

video.js throws InvalidStateError in Internet Explorer

在 IE11 中使用 video.js 播放器无法加载视频片段。

如果我查看控制台,我会看到 "InvalidStateError" 错误。

违规行在 video.js 包的 xhr 库依赖项内:

// node_modules/video.js/node_modules/xhr/index.js#L210
|  if ("responseType" in options) {
>     xhr.responseType = options.responseType
|  }

如果我在我的计算机上手动删除此行,播放器将会工作。

我该如何解决这个问题?我正在使用 webpack 构建我的应用程序。

它很老套,但您可以使用 webpack-plugin-replace plugin 将其替换为空字符串以删除该行。

// fixes "InvalidStateError" in IE which occurs at:
// node_modules/video.js/node_modules/xhr/index.js#L210
new ReplacePlugin({
  include: [
    "/node_modules/video.js/node_modules/xhr/index.js"
  ],
  patterns: [
    {
      regex: /xhr\.responseType = options\.responseType/,
      value: ''
    }
  ],
  // required due to a bug in `webpack-plugin-replace`
  // see: https://github.com/lukeed/webpack-plugin-replace/issues/6
  values: {
    "": ""
  }
})