【问题标题】:Encapsulate ActiveX for JavaScript为 JavaScript 封装 ActiveX
【发布时间】:2016-06-23 14:23:00
【问题描述】:

我正在尝试开发一个可以使用特定邮件程序(lotus-notes)的网站,但为此,我需要使用通常使用 ActiveXObject() 对象创建的应用程序创建一个会话。问题是我不会成为网站的最终用户,我不想创建一个对用户不友好的网站,总是要求用户添加扩展以使网站功能正常工作。

我正在尽我所能找到使用 ActivateXObject() 的解决方法,以我能做到的最佳方式封装应用程序,所以有没有任何类型的插件可以通过 JavaScript 添加到我的网站以便使用ActiveXObject() 或任何等效函数?

【问题讨论】:

    标签: javascript google-chrome firefox lotus-notes activexobject


    【解决方案1】:

    不,没有。要创建 COM 对象(这是 ActiveXObject 所做的),您需要使用原生支持 ActiveX(旧 IE)的浏览器或您可以使用和/或编写旧样式(NPAPI)的浏览器“插件”。

    由于安全问题,所有主要浏览器都已停止或正在积极(无双关)停止支持 NPAPI 插件机制。

    例如,我认为 SilverLight 插件可能能够创建 COM 对象,但由于它是作为 NPAPI 插件实现的,因此它正在迅速消失(并且在 2012 年被 Microsoft 停产;它们支持 SilverLight 5 到 2021 ,但这对你没有帮助)。

    目前没有替代技术可以在标准浏览器中从网页中运行的 JavaScript 代码创建 COM 对象。

    【讨论】:

    • 感谢您的帮助!我仍然必须找到一种以透明方式使用 COM 对象的方法,避免用配置细节来打扰用户。不知道有没有什么办法,即使不涉及JavaScript?
    • @Akssimiro:不是来自浏览器,不是。
    【解决方案2】:

    我有一个使用 Javascript 从常规网页调用的 COM 对象。 我也直接调用 Domino 数据库(IBM Notes 使用的数据库)。

    您可以做的是在服务器上编写所有功能,然后使用 Javascript 从浏览器调用这些功能。只需围绕您想要向 Web 应用程序公开的功能构建一个包装器。然后,您可以对服务器执行 Ajax 调用以执行操作或检索数据。

    您可以在以下两个演示文稿中找到更多信息:

    http://blog.texasswede.com/mwlug-2015/

    http://blog.texasswede.com/my-connect-2016-presentation-demo-database/

    【讨论】:

    • 抱歉回复晚了。该功能需要在客户端执行才能使用用户的邮件客户端。现在我有一个解决这种情况的方法。我必须使用 COM 对象才能使用 Lotus Notes 应用程序自动发送电子邮件,我目前正在用 javascript 中的 mailto 功能替换它。它为流程增加了一个步骤,并且根据用户必须发送的电子邮件数量,发送所有消息可能需要一些时间,但一半以上的工作是由 JavaScript 代码完成的。无论如何感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多