为一个Javascript功能创建功能检测(intersectionObserver)

为一个Javascript功能创建功能检测(intersectionObserver),javascript,feature-detection,intersection-observer,Javascript,Feature Detection,Intersection Observer,有没有办法将内置javascript方法存储在变量中,以便在某些浏览器中无法使用该方法时设置不同的行为 我的具体案例是intersectionObserver,它在Safari或更旧的MS浏览器中不可用。我有一些由此触发的动画,如果intersectionObserver不可用,我想将其关闭 我想做的主要是: var iO = intersectionObserver; if ( !iO ) { // set other defaults } 我真的不想只为一个功能加载polyfill或库

有没有办法将内置javascript方法存储在变量中,以便在某些浏览器中无法使用该方法时设置不同的行为

我的具体案例是intersectionObserver,它在Safari或更旧的MS浏览器中不可用。我有一些由此触发的动画,如果intersectionObserver不可用,我想将其关闭

我想做的主要是:

var iO = intersectionObserver;

if ( !iO ) {
 // set other defaults
}
我真的不想只为一个功能加载polyfill或库

非常感谢


Emily

运算符中的被广泛用于检测浏览器支持的功能。JavaScript功能作为
窗口
对象的属性在全球范围内可用。因此,我们可以检查
window
元素是否具有该属性

if("IntersectionObserver" in window){
    /* work with IntersectionObserver */
}
if("FileReader" in window){
    /* work with FileReader */
}
如果指定的属性位于 指定的对象或其原型链。
语法:对象中的道具
[来源:]

因此,您还可以将结果保存在
布尔变量中,并在以后的代码中使用它

var iO = "IntersectionObserver" in window; /* true if supported */

if ( !iO ) {
 // set other defaults
}

if(“窗口中的IntersectionObserver”)
<代码>变量iO=window.IntersectionObserver?这不起作用-它还会在我的代码编辑器@Xufox中抛出一个错误?它是什么?哪个错误?那行代码。我尝试使用它来创建变量,但它在我的编辑器中将其作为错误加下划线,并且不会处理代码?此外,我以前从未见过if语句结合两个问号。我应该包括问号吗?除非那是我想知道的东西的缩写?我真的很困惑。我没有把问号标记为代码,所以它们不属于代码。谢谢。我不敢相信有人否决了这个问题。如果你想的话,可以随意向上投票。这也是检测它的方式