Javascript 在一个页面上设置intranet和internet上的不同行为

Javascript 在一个页面上设置intranet和internet上的不同行为,javascript,html,Javascript,Html,假设我有两个版本的JavaScript库:一个公共版本和一个私有版本,其中只有内部用户可以访问私有版本,私有版本中的功能是公共版本的超集,并且包括一个我不希望在公共版本中公开的编辑模式。因此,私人用户应该能够编辑文档并将其提交给其他私人用户以供审阅/重新发布,而公共用户不应该有访问权限 如果我将它们都添加到html页面,如 <script src='[public_version]'></script> <script src='[private_version]'

假设我有两个版本的JavaScript库:一个公共版本和一个私有版本,其中只有内部用户可以访问私有版本,私有版本中的功能是公共版本的超集,并且包括一个我不希望在公共版本中公开的编辑模式。因此,私人用户应该能够编辑文档并将其提交给其他私人用户以供审阅/重新发布,而公共用户不应该有访问权限

如果我将它们都添加到html页面,如

<script src='[public_version]'></script>
<script src='[private_version]'></script>
私有版本应该覆盖公共版本中的所有内容,或者?根据公共用途或私人用途,创建一个具有不同功能的页面是一种糟糕的方法吗

--编辑--

让我澄清一下:为了我的目的,这必须是一页,而不是两页。所以我的问题是:有没有更好的方法来实现这种行为,限制它只能是一个共享页面

--编辑2--


第一段已经更新,说明它正在编辑私人版中添加的功能,我不想在公共版中公开这些功能。

这是一个坏习惯。你最好让一页为公众使用,一页为私人使用,这是受保护的。然后,您可以创建一个共享Javascript库,并在私有页面需要时对其进行扩展。

这是一个坏习惯。你最好让一页为公众使用,一页为私人使用,这是受保护的。然后,您可以创建一个共享Javascript库,并在私有页面需要时对其进行扩展。

您应该知道,公共用户可能可以通过操纵脚本来使用私有函数。如果这是一个大问题,则意味着您的应用程序设计中还有其他问题。 如果库不太大,这是一个不错的方法,但更干净的方法是分别加载不同的功能,而不是覆盖它们
按ok编辑我的意思是它不会起作用,这一点是不可取的

您应该知道,公共用户可能可以通过操纵脚本来使用私有函数。如果这是一个大问题,那么这意味着在您的应用程序设计中还有其他问题。 如果库不太大,这是一个不错的方法,但更干净的方法是分别加载不同的功能,而不是覆盖它们
通过ok编辑我的意思是,如果您能够在服务器中检测到一些用户来自internet,而其他用户来自intranet,那么在第一种情况下,您还应该能够将第一个库包含到HTML中,在第二种情况下,将其他库包含到HTML中,例如通过返回不同的HTML文件。如果您的服务器无法检测到这种差异,则这是安全漏洞


对编辑文档的访问应在服务器端进行检查,而不依赖于前端库。

如果您能够在服务器中检测到某些用户来自internet,而其他用户来自intranet,则在第一种情况下,您还应能够在HTML中包含第一个库,和其他库的第二种情况,例如通过返回不同的html文件。如果您的服务器无法检测到这种差异,则这是安全漏洞


对编辑文档的访问应该在服务器端进行检查,而不依赖于前端库。

您可以使用requirejsRequireJS是一个JavaScript文件和模块加载器库,以便根据您的条件将脚本动态加载到浏览器。

您可以使用requirejsRequireJS是一个JavaScript文件和模块加载器库动态加载脚本到浏览器的顺序取决于您的情况。

我同意ruttydmI的观点。我已更新了我的问题。我的限制条件是它只能是1page@ControlAltDel我认为我们需要更多的背景。这是一个静态页面吗?你在使用后端吗?为什么需要一页?我同意ruttydmI的观点,我已经更新了我的问题。我的限制条件是它只能是1page@ControlAltDel我认为我们需要更多的背景。这是一个静态页面吗?你在使用后端吗?为什么它需要一个页面?但是公共用户不会从私有版本获得额外的和修改过的功能,因为私有版本不会加载。你是说公共用户可以通过其他方式访问私有功能吗?我是在假设两者都已加载的情况下操作的,但只有当用户在intranet上时才会进行覆盖。我阅读了你最近的编辑,其他一个答案已经提到了这一点,但重要的是,客户端不能控制谁允许编辑文档。如果阻止私人用户编辑文档的唯一原因是他们没有JavaScript库,那么您需要重新考虑应用程序的工作方式,也许可以为intranet用户添加登录名,但是公共用户不会从私人版本获得额外的和修改的功能,因为私人版本不会加载。你是说
g公共用户访问私有功能还有另一种方式?我是在假设两者都已加载的情况下操作的,但只有当用户在内联网上时才会进行覆盖。我阅读了您最近的编辑,其他一个答案已经说过这一点,但重要的是,客户端不应该能够控制允许谁访问编辑文档。如果阻止私人用户编辑文档的唯一原因是他们没有JavaScript库,那么您需要重新考虑应用程序的工作方式,或许可以为intranet用户添加登录