我正在使用javascript:keystore = new ActiveXObject("RBCrypto.KeyStore");调用一个C# COM组件。我注意到这个实例会一直存在,直到我退出浏览器。当用户离开页面时,有没有办法“释放”这个对象?目前我使用的是:
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对象仍然存在。有什么想法吗?
发布于 2012-01-24 20:00:46
我知道现在回复有点晚了。“迟来不如不来”
我认为正确的方法是"Application.Quit();“。但是,对象COM/OLE/ActiveX的应用程序可以返回null。我不知道如何返回应用程序!= null来运行Quit();
你可以试试..。
try
{
keystore.closeKeyStore();
delete keystore;
keystore = null;
CollectGarbage();
}
catch(err)
{
alert('freeing ActiveXObject via javascript'+ err.description);
}发布于 2010-11-06 22:38:45
试一下,
keystore.Application.Quit();此结果来自http://www.c-point.com/javascript_tutorial/jsobjActiveXObject.htm
也可以在删除之前尝试将所有对象附加的值设置为空
for (k in elm) {
try {
elm[k] = null;
}
catch (e) {
}
}
}我发现这在HTML对象没有被删除的情况下很有帮助,并且有各种对象附加到它们上。
https://stackoverflow.com/questions/3628424
复制相似问题