YouTube Iframe API onError 事件近几个月没有触发

2024-01-11

我非常确定 YouTube Iframe API“onError”事件过去会触发,因为我运行一个基于此 API 的项目。但最近“onError”事件不会触发,即使是最简单的错误。

这是一个基于官方页面的简单示例代码(https://developers.google.com/youtube/iframe_api_reference https://developers.google.com/youtube/iframe_api_reference)并且是可行的:

<iframe id="existing-iframe-example"
        width="640" height="360"
        src="https://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1"
        frameborder="0"
        style="border: solid 4px #37474F"
></iframe>

<script type="text/javascript">
  var tag = document.createElement('script');
  tag.id = 'iframe-demo';
  tag.src = 'https://www.youtube.com/iframe_api';
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('existing-iframe-example', {
        events: {
          'onReady': onPlayerReady,
          'onStateChange': onPlayerStateChange,
          'onError': onError
        }
    });
  }
  function onError(event) {
    console.log(event.data)
  }
  
  function onPlayerReady(event) {
    
  }

  function onPlayerStateChange(event) {
    console.log(event.data);
  }
</script>

一旦将视频 ID 字符串“M7lc1UVf-VE”更改为错误的字符串,例如“M7lc1UVf”,它应该触发“onError”事件,但现在不会。

根据官方页面指南:https://developers.google.com/youtube/players/support https://developers.google.com/youtube/players/support→“Google工程师使用youtube-iframe-api标签监控并回答问题”,希望Google工程师能够看到这篇文章并修复“onError”问题。


我找到了解决这个问题的方法。我发现,至少就我而言,onError回调不会在初始加载时触发(当最需要的时候!),但会在播放器的其余部分完全加载后触发。

如果您绝对需要onError如果事件起作用,您可以在已加载的播放器中重新加载视频。去除autoplay参数来自playerParams对象——这会导致黑客失败。添加loadByVideoId(用于自动播放)或cueByVideoId具有相同的视频 IDonReady打回来。

这将重新加载当前视频和onError如果需要,回调将被触发。否则,除了视频在播放前短暂提示之外,几乎不会有任何明显的效果,如果autoplay是期待。

如果您想了解更多信息,请告诉我 - 希望有帮助!

EDIT:

  • 这是一个 codeandbox 演示问题. https://codesandbox.io/s/react-youtube-demo-forked-wyenn?file=/src/App.js请注意, 在单击“重置”按钮之前,错误不会添加到列表中。 (截至 2022 年 2 月 12 日,该错误仍然存​​在。)
  • 这是一个 codeandbox 演示解决方法我发现。 https://codesandbox.io/s/onerror-issue-workaround-xgjx7?file=/src/App.js注意onReady回调,以及列表中填充的错误。

更新: 我不知道它是什么时候发生的——谷歌的开发人员从未更新过我的问题——但看起来这个错误可能已经解决了。第一个演示现在按预期列出了加载时的错误代码。对于实施此解决方法的任何人,您现在也许可以删除该黑客攻击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YouTube Iframe API onError 事件近几个月没有触发 的相关文章

  • 如何确定并打印 jQuery 版本?

    是否有一个 jQuery 函数可以返回当前加载的 jQuery 版本 你可以使用这个 fn jquery or if you re using noConflict jQuery fn jquery 当 jQuery 构建时它会自动更新 定
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 带换行符的 React/Momentjs 日期格式

    我有一个日期字符串 我想对其进行格式化 其中数字位于月份下 Jul 6 我尝试了几种不同的方法来添加新行
  • Angular UI select:从远程服务获取数据

    我正在使用角度用户界面选择 https github com angular ui ui select https github com angular ui ui select 我查看了演示的可用位置这个笨蛋 http plnkr co
  • 如何判断一个网页是否支持jquery?

    确定网页是否启用 jquery 的最佳方法是什么 如果这是确定它的最佳方法 则使用 jquery 本身 if jQuery jquery object exists jQuery 并不神奇 它本质上只是一个大对象 您可以像检查任何其他对象一
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • 检测 Google 验证码的挑战窗口何时关闭

    我正在使用谷歌隐形验证码 有没有办法检测挑战窗口何时关闭 我所说的挑战窗口是指您必须选择一些图像进行验证的窗口 目前 我在按钮上放置了一个旋转器 一旦单击按钮 就会呈现验证码挑战 无法向用户提示另一个质询窗口 我以编程方式调用渲染函数 gr
  • JS 保留以零结尾的小数[重复]

    这个问题在这里已经有答案了 在JavaScript中 是否可以 锁定 十进制数 以保留以零结尾的 浮点数 例如 我有 2 个不同的数字 如下所示 伪代码 let a 1 0 let b 1 00 a b true should be fal
  • 如何在 select 和 option 标签中添加 JSON 数据?

    我有这个html代码 div class searchfilter div class searchwrapper div div
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • ChartJs:如何按时间值(而不是像素)以编程方式平移

    我使用的是chartJs 3 6 1 和 Chartjs plugin zoom 1 2 1 但我认为这并不重要 我有 2 个时间序列折线图 当我通过拖放平移一个图表时 我也想移动 平移另一个图表 为此 我为 graphA 启用了缩放 平移
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 确定 Javascript 中的日期相等性

    我需要找出用户在 Javascript 中选择的两个日期是否相同 日期以字符串 xx xx xxxx 形式传递给该函数 这就是我需要的全部粒度 这是我的代码 var valid true var d1 new Date datein val
  • 如何在运行脚本之前提交活动单元格中所做的更改? (Google 表格/Google Apps 脚本)

    我正在使用 Google Apps 脚本在 Google 表格中创建提交表单 该表单位于一页上 提交内容被移至第二个隐藏页面 当用户填写表单后 他们按下提交页面上的按钮以激活脚本 我遇到的问题是 当用户填写最后一个单元格然后单击按钮时 输入
  • 如何在 Jquery/Javascript 中绑定模糊和更改,但只触发一次函数?

    我试图在选择元素更改时触发函数 由于 Ipad 在 on change 方面遇到问题 我还想绑定到 blur 这在 Ipad 上工作得很好 但是我不希望两个事件都触发该函数两次 所以我需要某种挂钩来确保两个事件是否都触发change and

随机推荐

  • 如何学习 Jackson 来转换抽象类的继承者?

    我有一堂课 EqualsAndHashCode callSuper true Data public class AppealTemplateDto extends AbstractDto private List
  • 为什么我在尝试批量打印变量时收到“Echo is on”

    我尝试执行一个简单的批处理文件脚本 echo 1 set var 1 echo var 当我在 XP 中运行它时 它给出了预期的输出 但是当我在 Vista 或 Windows 7 中运行它时 我在尝试打印 回显 值时收到 Echo is
  • 在 MATLAB 中仅查找相关点

    我有一个 MATLAB 函数可以查找样本中的特征点 不幸的是 它仅在大约 90 的时间内有效 但是 当我知道应该查看样本中的哪些位置时 我可以将其提高到几乎 100 所以我想知道MATLAB中是否有一个函数可以让我找到大部分结果所在的范围
  • GetPrivateProfileInt-仅读取默认值

    我正在尝试读取 C 中包含内容的 init 配置文件 IP地址 IP地址 169 254 115 22 扫描配置 扫描频率 2500 扫描分辨率 2500 起始角度 700000 停止角度 1100000 到目前为止 我已经使用这段代码来读
  • 有效检查数据帧是否具有范围内的日期,并返回计数

    假设我们有一个数据框df包含按日期按时间顺序排列的日期列表 目标是获取给定日期内包含给定日期的日期范围的人数 df pd DataFrame data date datetime date 2007 12 1 datetime date 2
  • 在启用 IAM 登录的情况下通过 cloud-sql-proxy 从 Cloud Run 连接到 Cloud SQL

    我想使用服务帐号从 Cloud Run 连接到 Cloud SQL 实例 连接过去是在 VPC 内创建的 我们只需提供一个带有user and a password到我们的 PostgreSQL 客户端 但现在我们希望身份验证由 Googl
  • 在 lubuntu 15.04 上构建 Kurento

    我正在尝试在我的 lubuntu 15 04 上构建整个 Kurento 与 ubuntu 15 04 相同 但 UI 不同 我首先克隆所有存储库 mkdir kurento cd kurento git clone https githu
  • 通过redux改变状态后如何更新React组件?

    我正在学习 React 和 Redux 在学习的同时 我决定制作一个带有按钮的网页 单击该按钮就会改变状态 在按钮下方 我想在不同的组件中显示当前状态 虽然单击按钮会更改状态 但它不会反映在组件中 这是我的代码 App js import
  • 如何查看整个表

    我正在尝试使用 quandl 获取表 数据集 该表有 5 行 X 12 列 但在输出中仅显示 4 列 其余列被 3 个点替换 我使用Python编写了以下代码 import quandl df quandl get WIKI GOOGL p
  • printf("%f",x) 好的,printf("%F",x) 错误格式参数过多

    当我在 CodeBlocks 中使用说明符 F 时 为什么编译器会给出错误 格式参数过多 include
  • app.config 转换

    我非常喜欢添加web config 转换 http msdn microsoft com en us library dd465318 aspx在 Visual Studio 2010 中 另请参阅Scott Hanselman 最近在 M
  • 牛找到长栅栏间隙的算法

    我正在看这个挑战 一头名叫萨姆的近视奶牛在目前的牧场上找不到足够的草 它记得牧场的围栏有一个缺口 不幸的是 栅栏很长 要绕一整圈 Sam 需要沿着栅栏走几步 山姆只能看到间隙就在它旁边 记住牛是近视的 在本题中 您将设计不同的算法 使 Sa
  • 无法配置 CMake 来查找 Bison 的 Homebrew 安装版本

    我正在运行 macOS 10 14 并且安装了bison版本 3 2 与brew 但它拒绝链接 brew link bison force Warning Refusing to link macOS provided software b
  • struts2 将 URL 传递给 Action

    我读了struts手册通配符映射 http struts apache org 2 1 8 1 docs wildcard mappings html并决定自己测试一些例子 我有一个行动指向
  • 创建 Liferay portlet 配置页面

    我正在尝试为 Liferay portlet 创建一个配置页面 以便我可以为其设置一些参数 例如 我想选择控制器在查看时应显示哪个页面 配置应位于此处 所以我为配置创建了一个控制器 如下所示 import com liferay porta
  • 学习WPF和MVVM

    我最近加入了一个新的开发项目 使用 WPF 和 MVVM 构建胖客户端应用程序 我在各种 NET 框架 从 1 1 到 3 5 以及所有主要技术中开发过应用程序 WebForms MVC 和 WinForms 在我所有的项目中 我都很享受其
  • 如何仅在 3 边应用盒子阴影? [复制]

    这个问题在这里已经有答案了 我在下面使用我的 CSS 页面 他在 4 边应用了方框阴影 我希望它只应用于右侧 底部和左侧 如何仅在 3 边应用框阴影 webkit box shadow 0 0 10px rgba 0 0 0 0 22 mo
  • 显示格式 ApplyFormatInEditMode

    我在 C 中使用 MVC 3 我有一个具有此属性的类 DisplayFormat DataFormatString 0 dd MMM yyyy ApplyFormatInEditMode true 我想在用户处于状态时强制执行验证EDIT
  • 将 cout 和 stdout 重定向到 C++ 中的字符串以进行单元测试

    我正在努力在单元测试下获取一些遗留代码 有时感知现有程序行为的唯一方法是从控制台输出 我在网上看到很多关于如何将 stdout 重定向到 C 中的另一个文件的示例 但是有没有办法可以将其重定向到内存中的流 以便我的测试不必依赖于磁盘 我希望
  • YouTube Iframe API onError 事件近几个月没有触发

    我非常确定 YouTube Iframe API onError 事件过去会触发 因为我运行一个基于此 API 的项目 但最近 onError 事件不会触发 即使是最简单的错误 这是一个基于官方页面的简单示例代码 https develop