此旧版代码的含义是什么?

布兰基

这是一段可追溯到Netscape Navigator时代的js代码。我无法弄清楚或找不到此人这样做的原因。

function id(i)
{   

   var e;
   if (document.getElementById)
     return document.getElementById(i);
   else if (document.all)
     return document.all[i];
   else if (document.layers)
     return document.layers[i];  

   return null;
}

在更新的浏览器中,if(document.getElementById)总是如此。似乎正在检查该功能是否存在,但我不确定。

我要问的原因是,因为这段代码从浏览器IE8及更低版本中读取了namenot id)不应具有name属性的元素。我的任务是设法使其在新型浏览器上更有效地工作。但是首先,我真的需要了解这段代码的含义。

name从诸如at属性的读取<tr>是在其他地方完成的,这是将其用作自定义属性的非常简单的修复。我包括的这部分内容涉及更多的内容,而且不那么直接。

本杰明·格伦鲍姆(Benjamin Gruenbaum)

这是一种功能检测的形式getElementById-差不多:

function id(i)
{   

   var e;
   if (document.getElementById) // the standard way
     return document.getElementById(i);
   else if (document.all) // old IE model, needed for very old IE versions
     return document.all[i];
   else if (document.layers) // old netscape model, Netscape 4 etc.
     return document.layers[i];  

   return null;
}

除非您完全支持IE <5.5或Netsape <6,否则您都不应该完全支持这两种方式–您今天应该避免这种形式的功能检测。

为了执行特征检测,这种代码在当今非常普遍。我想强调一下这样一个事实,即代码在编写时最佳实践,但今天却毫无用处。例如,今天您有类似的东西:

if ( !window.requestAnimationFrame ) {
    window.requestAnimationFrame = ( function() {
        return window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.oRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        function(callback,element) {
            window.setTimeout( callback, 1000 / 60 );
        };
} )();
}

仅对于更新的API执行完全相同的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift-此代码提示的含义是什么?

来自分类Dev

此代码对获得对象属性名称的含义是什么?

来自分类Dev

在C qsort中此代码的含义是什么?

来自分类Dev

规范中此注释的含义是什么?

来自分类Dev

此Java错误的含义是什么

来自分类Dev

此NLP表示法的含义是什么?

来自分类Dev

此Java错误的含义是什么

来自分类Dev

Firebase和旧版iOS在GTM设置中的含义是什么

来自分类Dev

此python代码的含义是什么:<L在struct.pack(“ <L”,self.src)中

来自分类Dev

Segmentation Fault中“代码”的含义是什么

来自分类Dev

在此scala代码中_的含义是什么?

来自分类Dev

NSURLErrorDomain中的代码的含义是什么?

来自分类Dev

该代码段的含义是什么?

来自分类Dev

'Httparty'源代码的含义是什么

来自分类Dev

以下代码中\ +的含义是什么

来自分类Dev

这段代码中$的含义是什么?

来自分类Dev

此正则表达式中\\ +的含义是什么?

来自分类Dev

Java Servlet中此语句的含义是什么?

来自分类Dev

Emacs org-mode:此议程装饰的含义是什么?

来自分类Dev

Linux脚本中此链接的含义是什么

来自分类Dev

Simulink中此图标的含义是什么?

来自分类Dev

TFS 2013中此图标的含义是什么

来自分类Dev

此HTTP响应中每个部分的含义是什么?

来自分类Dev

Bash脚本中此变量的含义是什么?

来自分类Dev

此字符序列的可能含义是什么?A&#C

来自分类Dev

Java中此表达式的含义是什么?

来自分类Dev

Simulink中此作用域图标的含义是什么?

来自分类Dev

Heroku 日志中的此警告的含义是什么

来自分类Dev

此JavaScript代码的意义是什么?