Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SWF对象库将在所有浏览器中工作?_Javascript_Jquery - Fatal编程技术网

Javascript SWF对象库将在所有浏览器中工作?

Javascript SWF对象库将在所有浏览器中工作?,javascript,jquery,Javascript,Jquery,上面的代码用于swf对象库。它们检查用jquery编写的插件和ActiveX对象。ActiveX只在IE中工作。我的疑问是它是否能在所有浏览器中工作?如果是,意味着它如何工作?为什么它不能工作?对ActiveX的检查是有条件的,并且在出现错误时可以访问捕获的ActiveX对象 因此,任何不支持非IE行为(即除IE;)的浏览器都将由else处理 顺便说一句:回购协议的最新版本对代码的结构有点不同 if (typeof t.plugins != D && ty

上面的代码用于swf对象库。它们检查用jquery编写的插件和ActiveX对象。ActiveX只在IE中工作。我的疑问是它是否能在所有浏览器中工作?如果是,意味着它如何工作?为什么它不能工作?对ActiveX的检查是有条件的,并且在出现错误时可以访问捕获的ActiveX对象

因此,任何不支持非IE行为(即除IE;)的浏览器都将由
else
处理

顺便说一句:回购协议的最新版本对代码的结构有点不同

            if (typeof t.plugins != D && typeof t.plugins[S] == r) {
                ab = t.plugins[S].description;
                if (ab && !(typeof t.mimeTypes != D && t.mimeTypes[q] && !t.mimeTypes[q].enabledPlugin)) {
                    T = true;
                    X = false;
                    ab = ab.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                    ag[0] = parseInt(ab.replace(/^(.*)\..*$/, "$1"), 10);
                    ag[1] = parseInt(ab.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
                    ag[2] = /[a-zA-Z]/.test(ab) ? parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0
                }
            } else {
                if (typeof O.ActiveXObject != D) {
                    try {
                        var ad = new ActiveXObject(W);
                        if (ad) {
                            ab = ad.GetVariable("$version");
                            if (ab) {
                                X = true;
                                ab = ab.split(" ")[1].split(",");
                                ag = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)]
                            }
                        }
                    } catch (Z) {}
                }
            }
            return {
                w3: aa,
                pv: ag,
                wk: af,
                ie: X,
                win: ae,
                mac: ac
            }
        }()
它不再是
else
,而是
else if
(再次尝试捕获)。最常见的情况是事先盖好盖子。他们只需检查浏览器加载的所有插件,如
navigator.plugins
报告的那样。因为这是一种方法,所以大多数浏览器永远不会进入
else if
部分

要获取有关
navigator.plugins
的信息,请查看。这是一个浏览器的东西,在所有浏览器中都可以使用(除了通常的IE,但是上面代码中的技术将解决这个问题)。这将永远是“插件”。如果您尝试以不同的方式访问它,例如“plugin”,您将得到一个错误,因为它没有定义


我不太清楚你提到jQuery是什么意思。这是vanilla JS,因此没有使用jQuery。我们经常使用这个库,我可以告诉你,它是稳定的,并且经过了很好的测试。

我不知道navigator.plugin。所以请解释一下,假设我没有插件,那么它就是navigator.plugins了吗?@p.PrabhakaranB.E检查我的更新。这是一个浏览器端的东西,将永远存在。
.... }
else if (typeof win.ActiveXObject != UNDEF) {
   try {
       var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
       if (a) { // a will return null when ActiveX is disabled
          d = a.GetVariable("$version");
          if (d) {
             ie = true; // cascaded feature detection for Internet Explorer
             d = d.split(" ")[1].split(",");
             playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
            }
        }

   catch(e) {}
}