我正在尝试调试此错误,并且可以使用一些建议:
TypeError: 'null' is not an object (evaluating 'a.a.contentWindow.postMessage')
www-widgetapi-vflsofjNm.js:19
现在这发生在 Safari 版本 6.0.2 (7536.26.17) 中。基本流程是这样的:
我有一个带有容器的页面 - 我使用 jQuery 的 $.get() 将内容加载到这个容器中:
<div id="container">
<iframe id="player1"><iframe id="player2"><iframe id="player3">
</div>
我可以使用 iFrame API 来停止容器中的任何视频。
var player1 = new YT.Player('player1');
console.dir(player1);
player1.stopVideo();
-> no error, video stops
然后我将不同的内容加载到一个新容器中:
<div id="container">
<iframe><iframe><iframe>
</div>
<div id="anothercontainer"></div>
并删除包含 iframe 的容器:
<div id="anothercontainer"></div>
然后我重新添加 iframe(相同的 ID)并删除另一个容器:
<div id="container">
<iframe id="player1"><iframe id="player2"><iframe id="player3">
</div>
在使用新的 iframe 将 iframe 加载到容器中(第二次)后,我再次调用 YT JS:
var player1 = new YT.Player('player1');
console.dir(player1);
player1.stopVideo();
-> no error, video stops
console.dir(player1) 显示一个对象,但是当我调用 player1.stopVideo() 时,我得到了上面提到的错误。有任何想法吗?