首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >释放JavaScript的ActiveXObject()?

释放JavaScript的ActiveXObject()?
EN

Stack Overflow用户
提问于 2010-09-02 23:05:02
回答 2查看 4.3K关注 0票数 4

我正在使用javascript:keystore = new ActiveXObject("RBCrypto.KeyStore");调用一个C# COM组件。我注意到这个实例会一直存在,直到我退出浏览器。当用户离开页面时,有没有办法“释放”这个对象?目前我使用的是:

代码语言:javascript
复制
window.onunload=function() //when a user leaves the page close the keystore
{
     if(keystore != null)
     {
         try
         {
            keystore.closeKeyStore(); //method in keystore
            delete keystore;
         }
         catch(err) { alert(err.description); }
     }  
}

但是COM对象仍然存在。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-24 20:00:46

我知道现在回复有点晚了。“迟来不如不来”

我认为正确的方法是"Application.Quit();“。但是,对象COM/OLE/ActiveX的应用程序可以返回null。我不知道如何返回应用程序!= null来运行Quit();

你可以试试..。

代码语言:javascript
复制
try
{
    keystore.closeKeyStore();
    delete keystore;
    keystore = null;
    CollectGarbage(); 
}
catch(err)
{
    alert('freeing ActiveXObject via javascript'+ err.description);
}
票数 1
EN

Stack Overflow用户

发布于 2010-11-06 22:38:45

试一下,

代码语言:javascript
复制
keystore.Application.Quit();

此结果来自http://www.c-point.com/javascript_tutorial/jsobjActiveXObject.htm

也可以在删除之前尝试将所有对象附加的值设置为空

代码语言:javascript
复制
for (k in elm) {
            try {
                elm[k] = null;
            }
            catch (e) {
            }
        }
}

我发现这在HTML对象没有被删除的情况下很有帮助,并且有各种对象附加到它们上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3628424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档