我在一个页面上嵌入了一个视频,只有在用户登录到其他域时才能访问该视频。如果他们没有登录,我想听一个错误事件并将元素更改为登录页面的链接。不幸的是,.mediafallbacklink和an event listener都没有正常工作。仅显示已禁用的视频播放器。 有什么想法吗?
在测试中,embed元素位于localhost:1337
,视频源位于localhost
。
<video data-setup-lazy="{"language": "en", "fluid": true}" class="video-js" preload="auto" controls="true" title="Export Compliance">
<source src="http://localhost/pluginfile.php/myvideo.mp4" type="video/mp4">
<a class="mediafallbacklink" href="http://localhost/pluginfile.php/myvideo.mp4">Video Source</a>
</video>
JavaScript的:
$(function(){
console.log("this works:", document.querySelector("video"));
document.querySelector("video").onerror = function(event) {
console.log("but this never fires:", event);
var a = document.createElement("a");
a.href = this.src;
a.innerHTML = "Video Source";
a.download = videoPlayer.src;
this.parentElement.replaceChild(a, this);
};
});
此错误显示在JavaScript控制台(Chrome 60)中:
GET http://localhost/pluginfile.php/myvideo.mp4
net::ERR_UNEXPECTED_PROXY_AUTH
答案 0 :(得分:1)
g.data_source
代码如果无法找到指定的网址,则不会触发video
事件。
相反,您应该在error
标记中收听<source>
标记中的<video>
标记,如下所示。
error
&#13;
$("video source").on("error", function(e) {
alert(e.type);
});
&#13;