如何使用JavaScript禁用“保存网页”?

3
我该如何在弹出菜单和文件菜单中禁用“保存网页”功能?

你不能这样做。此外,你也不应该这样做。如果你觉得有必要这样做,那么请在你自己的端上寻找问题,而不是让用户来解决。 - hakre
3个回答

8

在没有客户许可的情况下,您不能在JavaScript中更改客户端浏览器设置。


那么,客户端浏览器禁止保存我的网页的解决方案是什么? - nova7foldism
3
@nova:你无法做到。如果你将它发送给客户端,他已经拥有了它。 - user395760
4
没有解决方案。如果浏览器可以访问您的页面,它也可以保存您的页面。 - Alnitak
2
@nova7foldism,没有解决方案 => 这就是为什么您永远不应该将任何敏感信息存储在标记和 JavaScript 中的原因。因为无论您多努力,客户端始终能够查看并保存它。您已经将其发送到客户端 :-) - Darin Dimitrov
4
此外,您的浏览器很可能已经将页面保存在其缓存中。 - Alnitak

5
你不能这样做。
技术上来说,你可以通过捕获window.oncontextmenu来完全禁用右键(上下文)菜单,在jQuery中实现非常简单,代码如下:
$(window).bind('contextmenu', false);

但是你不应该这样做,因为它会让你的用户感到烦恼,而且他们仍然可以使用“文件->另存为…”菜单。


1
似乎$(window).bind('contextmenu', false)就足够了。 - pimvdb
那么一个没有菜单和禁用右键菜单的弹出窗口就可以了吗?;) - hakre

3
你不能完全阻止网站文件被保存,但是有一种技术方法可以通过JavaScript来实现。然而,这种方法存在很多问题,但它很容易解释:
当您的网页HTML从服务器传输到浏览器后,一个JavaScript例程会负责将文档内容扩展到浏览器系统的技术文件大小限制之上。
当用户想要保存文件时,文件系统会在触发文件大小最大限制时给出错误提示。
然而,在文件保存操作生效之前,大多数这样的脚本已经达到了浏览器的内存限制。这意味着,实际上您已经阻止了用户保存页面,因为浏览器拒绝再处理它。可能会弹出警告消息或者直接崩溃,具体取决于您想要做到什么程度。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接