navigator.plugins
为浏览器提供了plugins-array。是否可以将此数组设置为null?我试过了(navigator.plugins = null;
),但它没有设置为null。另外,我尝试将其设置为空数组(navigator.plugins = new Array();
)
如果可以的话,这是一个好习惯吗?
答案 0 :(得分:2)
在Chrome中,可以通过将window.navigator
设置为null来执行此操作。但是,我不确定你为什么会这样做。由于您正在处理JavaScript,因此有人可以使用调试器来阻止代码运行并拦截此代码,然后才能将其设置为null。
此外,导航器对象通常包含有关客户端计算机的信息,如果我是用户,我很可能比您的服务器了解更多关于我的计算机的信息,因此禁用此功能实际上没有任何可衡量的优势。可以看到。
此外,这必须发生在每个页面加载上。
最后,我不知道其他浏览器会如何处理这个问题,但是你很可能在其他浏览器中尝试这样做时会遇到麻烦。
简而言之,我认为这不是一个好习惯;但是,您没有提供有关您为什么要这样做的详细信息。没有这些信息,我不能给你一个公平的答案,除了它不是一个好主意。所以你当然需要检查你为什么要这样做,并确定它是否真的值得麻烦。
答案 1 :(得分:1)
有些Web应用程序首先检索浏览器名称。 UIWebView的导航器对象不返回足够的信息。 例如navigator.userAgent返回
Mozilla / 5.0(iPad; CPU OS 9_2,如Mac OS X)AppleWebKit / 601.1.46 (KHTML,像Gecko)Mobile / 13C75
这些网络应用程序无法从上述信息中检测到浏览器名称,并抛出异常不支持的浏览器。
为了处理这种情况,我覆盖了下面给出的导航器对象,是的,Web应用程序能够完美地运行。 这在firefox中失败了,但我的要求是仅支持UIWebView
i
答案 2 :(得分:-2)
我从来没有听说有人想把插件数组设置为null,坦率地说我不明白如果你这样做会带来什么好处。就像jmort253所说,可以在chrome中将其设置为null,但在其他浏览器中你可能无法做到。请记住,navigator.plugin不是JavaScript数组,而是pluginArray