2010-02-01 19 views

回答

19
function AXOrNull(progId) { 
    try { 
    return new ActiveXObject(progId); 
    } 
    catch (ex) { 
    return null; 
    } 
} 
+0

嗯,我認爲這是工作,但ActiveX文件現在我的本地機器,而且這個方法總是返回null。 我被賦予這樣的代碼: <對象ID = 「ASPPrinter」 的classid = 「CLSID:48CB850F-41FF-4EE6-B87D-FB9EC26D193F」 基本代碼= 「ASPPrinter.CAB#版本= 2,1,0,200」> 但我不確定該代碼的哪一部分應該用於progId。我使用該代碼和代碼庫中的classid來嘗試它,它們都始終返回null。 – 2010-02-01 19:49:21

+1

如有疑問,請通過註冊表的「HKCR \ CLSID」分支搜索相關CLSID。當你找到*和*這個類是COM的時候,你會發現一個名爲'ProgID'的子鍵。該鍵的默認值是您需要的ProgID。 – Tomalak 2010-02-01 20:07:07

+0

AXOrNull('ASPPrinter.CAB') – DoctorLouie 2010-02-01 20:08:12

9

解決方案,嘗試調用一個新的ActiveXObject:


function testForActiveX(){ 
    tester = null; 
    try { 
     tester = new ActiveXObject('htmlfile'); 
    } 
    catch (e) { 
     // catch the exception 
    } 
    if (tester) { 
     // ActiveX is installed 
     return true; 
    } 
    return false; 
} 
0
try{ 
     if(new ActiveXObject("Nameofplugin")){ 
     // write your code if plugin available 
     } 
     else{ 
     // write your code if plugin is not available 
     } 
    } 
    catch(erro){ 
    //write your code if plugin is not available 
    } 

` Nameofplugin你可以從IE得到 - >工具 - > ManageAddons - >檢查列表並選擇你的支持插件的名稱