使用require.js!async插件加载youtube iframe api

时间:2013-09-15 11:17:28

标签: javascript asynchronous youtube-api requirejs amd

使用!async插件加载YouTube Iframe API时遇到一些问题,欢迎任何帮助!

地图示例有效,所以我目前假设基本设置必须正常:

define('something', [
'async!http://maps.google.com/maps/api/js?sensor=false'
], function () { console.log('loaded..'); } 
);

// doesn't work
define('something', [
'async!https://www.youtube.com/iframe_api!callback'
], function () { console.log('loaded..'); } 
);

// doesn't work
define('something', [
'async!https://www.youtube.com/iframe_api!onYouTubeIframeAPIready'
], function () { console.log('loaded..'); } 
);

// doesn't work
define('something', [
'async!https://www.youtube.com/iframe_api'
], function () { console.log('loaded..'); } 
);

他们都得到了未捕获错误:模块加载超时:异步!https://www.youtube.com/iframe_api!onload_unnormalized2,async!https://www.youtube.com/iframe_api!onload http://requirejs.org/docs/errors.html#timeout或类似的(取决于第二个之后的设置!) 这可能意味着onYouTubeIfraneAPIready()上的回调函数永远不会被调用,或者!async插件不知道它。

这可能意味着永远不会调用回调函数。如果我自己定义了回调函数它可以工作..但仍然会收到超时错误。

window.onYouTubeIframeAPIready = function () {
console.log('youtube api usual callback');
}

1 个答案:

答案 0 :(得分:2)

我已经解决了这个问题并将解决方案提供回插件的存储库。 https://github.com/millermedeiros/requirejs-plugins/pull/39