我正在使用javascript调用C#COM组件:keystore = new ActiveXObject("RBCrypto.KeyStore");
。我注意到这个实例一直存在,直到我退出浏览器。无论如何,当用户离开页面时,是否“释放”该对象?目前我正在使用:
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对象仍然存在。有什么想法吗?
答案 0 :(得分:1)
试,
keystore.Application.Quit();
此结果来自http://www.c-point.com/javascript_tutorial/jsobjActiveXObject.htm
您还可以在删除
之前尝试清空所有对象附加值for (k in elm) {
try {
elm[k] = null;
}
catch (e) {
}
}
}
我发现这有助于HTML对象尚未删除,并且附加了各种对象。
答案 1 :(得分:1)
我知道回复有点迟。 “迟到而不是永远”
我认为正确的是“Application.Quit();”。但是,对象COM / OLE / ActiveX的应用程序可以返回null。我不知道怎么做返回Application!= null来运行Quit();
你可以试试......
try
{
keystore.closeKeyStore();
delete keystore;
keystore = null;
CollectGarbage();
}
catch(err)
{
alert('freeing ActiveXObject via javascript'+ err.description);
}