2012-04-23 11 views
0

私はclientCapsオブジェクトをJavascriptでプローブしようとしています(私はMSIEの動作にあまり慣れていません)。しかし、多くの運がない。プローブclientCaps with javascript

他の制約のため、私は実際にページのHTMLを変更できないため、要素を動的に追加しようとしていません。私が使用しているコードを以下に示します - 例外を取得し続けます(オブジェクトはこのプロパティまたはメソッドをサポートしていません)。私が間違っていることは何ですか?以下に動作することを発見

    var out=""; 
        try { 
         var b = document.getElementsByTagName("body")[0]; 
         var s = document.createElement("div"); 

         // attempt 1 - exception 
         // s.id="oClientCaps"; 
         // s.style.behaviour="url('#default#clientCaps')"; 
         // 
         // attempt 2 - exception 
         // s.innerHTML='<a ID="oClientCaps" style="behavior:url(#default#clientcaps)"></a>'; 
         // 
         // attempt 3 - exception 
         s.id="oClientCaps"; 
         s.addBehavior ("#default#clientCaps"); 

         b.appendChild(s); 
         var clids = Array('{7790769C-0471-11D2-AF11-00C04FA35D02}', // address bk 
          ... 
          '{08B0E5C0-4FCB-11CF-AAA5-00401C608500}'); // MS VM 

         for(i=0;i<clids.length;i++) { 
         if(oClientCaps.isComponentInstalled(clids[i],"ComponentID")){ 
          out+=clsids[i] 
          + oClientCaps.getComponentVersion(clids[i],"ComponentID") 
          + '; '; 
         } else { 
          out+='N; ' 
         } 
         } 
        } catch (e) { 
         out+="clientCaps failed"; 
        } 
        return out; 

TIA

+1

多分それは、このです: 'b.apendChild(S);' ? – Teemu

+0

@Teemu:よく目に付きますが、これはコードを貼り付けたときのタイプミスです - オリジナルはOKです! – symcbean

答えて

0

(他の方法が失敗した理由を、私はわからないが):

var b = document.getElementsByTagName("body")[0]; 
var s = document.createElement("div"); 
s.innerHTML="<div style='behavior:url(#default#clientCaps)' ID='oClientCaps' ></div>"; 
b.appendChild(s); 
(etc)