使用javascript探测clientCaps

时间:2012-04-23 09:43:55

标签: javascript internet-explorer

我正在尝试在Javascript中探测clientCaps对象(我对MSIE中的行为不是很熟悉)。但没有太多运气。

由于其他限制,我无法真正修改页面的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 个答案:

答案 0 :(得分: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)