何时使用if(document.all && document.getElementById)条件

|| 想知道何时使用,这适用于什么浏览器?
if (document.all&&document.getElementById) {
// Some code block
}
    
已邀请:
我认为目前还没有任何不支持
document.getElementById
的重要浏览器。甚至IE6都支持它(尽管它弄错了-细节-但是用
document.all
做同样的事情)。我只用
document.getElementById
而不是
document.all
。 如果仅使用此功能来检测浏览器,而不是专门因为要使用
document.all
或ѭ1specifically来检测浏览器,则通常不建议使用浏览器检测。而是要进行特征检测,测试所需的实际特征。这里和这里都有一些很好的特征检测示例。 题外话:如果您打算进行任何重要的跨浏览器工作,则可以考虑使用jQuery,Prototype,YUI,Closure或其他任何一种库。它们将为您解决浏览器的差异,提供一些非常有用的实用程序功能,甚至(在某些情况下)修复浏览器错误,例如IE对ѭ1handling的错误处理(例如,jQuery也会这样做) )。     
“ 2”是旧版本的IE(IE3及更高版本)实现的功能。它也是由Opera实施的,旨在与仅限IE的网站兼容。 但是,在任何情况下都不再建议使用“ 2”,因为它已经完全过时了。 IE和Opera一直支持它,因为可能仍有一些旧代码仍在使用它,但是现代代码中没有放置它的地方。 有一些脚本库在Javascript中实现了
document.all
版本,从而允许旧代码在现代浏览器上运行。因此,使用
document.all
作为浏览器测试甚至都不值得(正如您在问题中所展示的那样)。实际上,我要做的就是打破测试,写write12。
document.getElememtById
最初是由IE在v5.0中实现的,因此您在问题中给出的条件应该是在IE5时代编写的,并且将是IE5.0及更高版本的原始浏览器检测代码,因为那是(当时)唯一支持这两种方法的浏览器。但是,正如已经讨论过的那样,它现在几乎没有用了,并且比使任何事情起作用都更有可能引起您的问题。     
  这适用于什么浏览器?
if (document.all)
瞄准IE4 +,在v5(在Linux上为v4)和v9.5之间的Opera,Konqueror 2,iCab 2和3,Omniweb 4(在v4.5之前)以及一些使用Rhino javascript引擎的晦涩的浏览器。 “ 15”针对任何支持DOM1的浏览器(IE5 +,NS5 +,OP4 +等)   什么时候使用   (document.all && document.getElementById)   条件 我无法想象这种情况有一个明智的用例(它不够具体)。 因此,显然答案是永远不会。     

要回复问题请先登录注册