0

我正在尝试在 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

4

1 回答 1

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)
于 2012-04-23T11:00:55.200 回答