C++ ActiveX似乎是异步装载的

C++ ActiveX似乎是异步装载的,c++,reactjs,activex,C++,Reactjs,Activex,IE11。 我有一个带有一些API的ActiveX组件,还有一个位于ReactJS顶部的应用程序来使用它。考虑下一个反应组件代码: componentDidMount() { this.mountActiveX(); this.updateActiveX(); } mountActiveX() { this.refs.content.getDOMNode().innerHTML = ` <object classid='CL

IE11。 我有一个带有一些API的ActiveX组件,还有一个位于ReactJS顶部的应用程序来使用它。考虑下一个反应组件代码:

componentDidMount() {
    this.mountActiveX();
    this.updateActiveX();
}

mountActiveX() {
    this.refs.content.getDOMNode().innerHTML = `
        <object
            classid='CLSID:9F52F906-94D1-4E33-85E4-62A9A68EF545'
            name="client"
            ref="client"
        ></object>
    `;
    this._client = window["client"];
    this._isMounted = true;
}

updateActiveX() {
    if (this._client && this._isMounted) {
        /* use ActiveX API here */
    }
}
componentDidMount(){
这个.mountActiveX();
this.updateActiveX();
}
mountActiveX(){
this.refs.content.getDOMNode().innerHTML=`
`;
这个._client=window[“client”];
这个。_isMounted=true;
}
updateActiveX(){
如果(此客户端和此客户端已安装){
/*在这里使用ActiveX API*/
}
}
当我试图在
updateActiveX
中调用某个ActiveX API方法时,IE会引发一个错误:
无法创建顶级子窗口。
。但是,如果我延迟
updateativex
方法(例如,由于
setTimeout
),则没有错误,API可用


如何处理ActiveX组件装载?

已解决-我曾用CSS类显示\hide ActiveX dependens
\u isMounted
标志:在React组件类的初始装载过程中,
hide
被删除,紧接着
componentDidMount
,调用了“udpateActix”和ActiveX API方法,我猜,浏览器并没有在页面上呈现完全同步的ActiveX外观-当调用ActiveX API时,控件仍然隐藏-这就是为什么
无法创建顶级子窗口的原因。需要检查控制可见性。