我开发了多个利用“control = new ActiveXObject”的 JavaScript 函数。当 javascript 涉及常用插件(如 Acrobat Reader、Flash、QuickTime 等)时,所有这些功能都可以完美运行。当我超越 ActiveXObject 和插件的领域时,进入“new ActiveXObject("WbemScripting.SWbemLocator");" 除非我降低 Internet Explorer 安全设置,否则 javascript 会被 Internet Explorer 阻止。据我了解,解决此问题的唯一方法是使用涉及 Comodo 或类似证书颁发机构证书的签名脚本。由于我只对 Internet Explorer 中的功能感兴趣,因此我理解我需要使用 Authenticode 证书。我了解到 Authenticode 实际上确实在 Internet Explorer 中对 java 进行了身份验证。就个人而言,我宁愿不必为“new ActiveXObject("WbemScripting.SWbemLocator");”使用签名脚本。但也许这是我唯一可用的选择。
一个。如果有一种更快、更简单的方法来解决这个问题,而不涉及降低 Internet Explorer 中的安全设置,我会非常有兴趣知道它会是什么。我似乎无法提示浏览器/用户允许执行涉及 ActiveXObject(“WbemScripting.SWbemLocator”)的 javascript。
湾。如果我理解这个问题的实际解决方案,我对 Authenticode 和 javascript 的理解是否正确?Authenticode 是否在 Internet Explorer 中验证 javascript 的执行?
C。我宁愿不重新发明轮子,而是想留在 javascript 中。据我了解,我可以将 .js 放入 .jar 中。当我在本地 HTML 页面上使用以下 "script archive="helloworld.jar" src="helloworld.js" 时,脚本运行良好。当我尝试从 Internet/服务器运行相同的 HTML 时,Internet Explorer 会阻止它.jar 是否也被 Internet Explorer 自动阻止?还是我使用了错误的代码?我知道类通常放在 .jar 中,但不完全理解为什么使用 helloworld.jar 的简单 helloworld 会在本地运行而不是在本地运行互联网/服务器。
另一个想法 - 对整个域使用 SSL/HTTPS 会避免这个问题吗?