代码之家  ›  专栏  ›  技术社区  ›  artlung

测试对象、子对象和孙子对象的javascript(例如:HTML框架)

  •  0
  • artlung  · 技术社区  · 14 年前

    我有一段javascript,它是库的一部分,我希望只有在某个框架集可用时才启用它。

    我想做的就是:

    if (typeof(top.TableOfContents.frames.content)!=='undefined') {
        // stuff I want to do only if there's a frame named
        // TableOfContents with a frame named content
    }
    

    现在,如果框架不可用,我会出错,所以我现在要做的是:

    if (typeof(top.TableOfContents)!=='undefined'
        && typeof(top.TableOfContents.frames)!=='undefined'
        && typeof(top.TableOfContents.frames.content)!=='undefined'){
        // stuff I want to do only if there's a frame named
        // TableOfContents with a frame named content       
    }
    

    但感觉可能有更好的方法来做这个(除了失去帧,哈哈)。是否有更有效或更不详细的方法来测试对象、子对象和孙子对象?

    现在,这些都是用相对URL引用的帧,因此不应该有“ same origin policy “我能想到的问题(我在测试中没有遇到任何问题)。

    1 回复  |  直到 14 年前
        1
  •  2
  •   fcalderan    14 年前

    if (!!((((top || {}).TableOfContents || {}).frames || {}).content)) {
      // stuff you want to do only if there's a frame named
      // TableOfContents with a frame named content
    }