【问题标题】:Notify ActiveX that <object> has been removed from DOM通知 ActiveX <object> 已从 DOM 中删除
【发布时间】:2018-05-27 15:59:29
【问题描述】:

这有点死,但我在这里运气不好。

如何通过parent.innerHTML = ''parent.removeChild(activeXID) 在我的 ActiveX COM 中收到节点已从 DOM 中删除的通知

FireBreath 似乎以某种方式做到了

【问题讨论】:

    标签: activex firebreath


    【解决方案1】:

    FireBreath 并不真正支持被删除和再次添加,但我认为它要么是 InPlaceDeactivate 要么是 SetClientSite 不知何故;你只需要设置一些断点并使用它。您在 FireBreath 中需要的文件是 FBControl.h

    【讨论】:

    • 谢谢,Richard,我们会深入研究。总体问题是即使在 f5 之后,我们的插件也不总是被清除。有时调用析构函数有时不调用,通常是在浏览器有很多工作要做的时候
    • 我看到发生这种情况的最常见原因是并非所有引用计数的对象都在需要时被释放
    • 你好,理查德!我们已经尝试过执行 IOleInPlaceObject(连同 IUnknown 和 IOleObject),但我们遇到的问题是在删除时没有调用它的任何方法。事实上,它们中的任何一个都没有被调用(该对象对于脚本来说是安全的,而且我们的自定义方法可以在 JS 中正常工作)。我怀疑我们没有正确注册它们,但我在 MSDN 上找不到任何与案例相符的文档。你对此有什么建议吗?谢谢。
    • 并非所有控件都使用 IOleInPlaceObject —— 有时还会使用其他接口。我完全忘记了——如果我是你,我会查看 FBControl.h,看看它在使用什么,而你不是,看看它是否适用。我已经快 5 年没写那么多代码了,所以我记不太清了
    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 2011-04-05
    • 1970-01-01
    • 2015-04-24
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多