我正在与提供要放入iFrame以显示某些托管视频播放的URL的第三方合作。postMessage()事件侦听器不工作
- 这是跨域
- 他们使用JWPlayer作为他们的首选
我要求的方式来“知道”的视频播放完成时的球员。从阅读看来,postMessage()回调看起来像许多人使用的......并且是第三个供应商提出的建议,并提到他们会实施。
我被给了一个测试网址,它有这个'回调'功能...看看我能否使用它。
我似乎无法从回调/侦听器功能得到任何警报?
由于这是我第一次实现这个,我不知道这个错误是源于我的最终还是他们的? 我在想这可能是postMessage()函数的路径吗?
firebugging代码后..我终于资助他们的JS /回调在这里设置:
jwPI.on('complete', function(event){
playbackTime= playbackTime + (jwPI.getPosition() - positionA);
positionA=jwPI.getPosition();
parent.postMessage('EndVideo','*');
});
我身边的事情有简单的事件监听器添加像这样:
window.addEventListener("message", function(evt) {
//do whatever
alert("VIDEO CALLBACK FIRED");
});
我的问题是:
- 为什么这不起作用?目标/范围问题?
我是否需要让第三方供应商在其postMessage()回调中更新路径? '.parent'实际指向哪里? (如果这是一个嵌入式iFrame?),并有DIV的等等嵌套的iFrame内容?
我的监听器函数位于加载此iFrame的主父文件中?
我可以直接将它保留为原样并以某种方式更改侦听器中的路径/目标吗?