JavaScript returns 中的 Netscape 浏览器控制台出现错误

Netscape in JavaScript returns an error in the browser's console

我想知道为什么 netscape 不能使用 JS

if(navigator.appName == "Netscape" && parseInt(navigator.appVersion.charAt(0)) >= 4){
  //netscape should work, but the code doesn't work and I get an error in the console
  netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
  //uncaught ReferenceError: netscape is not defined
  window.open(
    "URL",
    "Name",
    "menubar=off, toolbar=off, location=off, personalbar=off, status=off, minimizable=off, resizable=off, directories=off, chrome=on, dialog=off, titlebar=no, alwaysRaised=on, close=no"
  );
}else{
  alert('Your browser isn\'t supported!');
}

所有支持 Netscape 的浏览器(如 Chrome、Firefox、Opera...)return 此错误

注意错误是: uncaught ReferenceError: netscape is not defined

对于那些不知道什么是 Netscape 的人,请阅读这个问题的答案:

Why does JavaScript navigator.appName return Netscape for Safari, Firefox and Chrome?

编辑:

新问题,如何在Chrome、Firefox、Opera...中获得UniversalBrowserWritePrivilege

navigator.appName == "Netscape" 不是支持 netscape 对象的可靠测试。许多浏览器将 Netscape 设置为 appName 来解决 terrible browser sniffing code。如果要测试某个功能,请测试 功能 (例如 if (typeof netscape !== 'undefined')

支持它的浏览器中(我认为仅限于 Firefox),出于安全原因 many years ago 删除了对 netscape.security.PrivilegeManager 的支持。