如何从浏览器的右键菜单中禁用“另存为…”以防止客户端下载视频?

是否有更完整的解决方案来阻止客户端直接访问文件路径?


当前回答

你可以使用

<video src="..." ... controlsList="nodownload">

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/controlsList

它不会阻止保存视频,但它会删除上下文菜单中的下载按钮和“另存为”选项。

其他回答

你在浏览器中看到的一切都是下载的内容。这里提到的问题是如何在浏览器中保存这些内容。要查看内容,客户端浏览器从内容服务器下载并在本地提供。

一种流行的解决方案是将(短暂的)内容仅保存在浏览器中,并在有限的时间内,以一种不能直接保存的方式保存。blob是这种方法的一种实现,它具有减少带宽和存储开销的额外好处,因为内容存储在二进制对象中。

内容的短有效期使得普通用户几乎不可能持久存储,因为在用户尝试保存过期内容之前会显示新内容。

我通常使用的最好的方法很简单,我完全禁用整个页面的上下文菜单,纯html+javascript:

 <body oncontextmenu="return false;">

就是这样!我这么做是因为你总是可以通过右键点击看到源代码。 好吧,你说:“我可以直接使用浏览器查看源代码”,这是真的,但我们从事实开始,你不能停止下载html5视频。

简单的回答,

你不能

如果他们正在看你的视频,他们已经有了

你可以让他们慢下来,但不能阻止他们。

@Clayton-Graul有我正在寻找的东西,除了我需要一个使用AngularJS的网站的CoffeeScript版本。以防你也需要它,下面是你在AngularJS控制器中输入的内容:

    # This is how to we do JQuery ready() dom stuff
    $ ->
        # let's hide those annoying download video options.
        # of course anyone who knows how can still download
        # the video, but hey... more power to 'em.
        $('#my-video').bind 'contextmenu', -> 
            false

“奇怪的事情正在k圈发生”(这是真的)

+1简单和跨浏览器的方式: 你也可以用css z-index和不透明度把透明的图片放在视频上。 这样用户将在上下文菜单中看到“另存图片为”而不是“保存视频”。