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