【问题标题】:How can I get an element from within a frameset frame using JavaScript?如何使用 JavaScript 从框架集框架中获取元素?
【发布时间】:2010-03-24 17:26:21
【问题描述】:

我需要从框架集框架内访问和元素。例如,如果我有以下标记:

<frameset rows="33%,33%,*">
  <frame src="frame1.html"/>
  <frame src="frame2.html"/>
  <frame src="frame3.html"/>
</frameset>

如何从其中一个子框架中获取一些元素?我试过这个:

window.frames[1].getElementById('someElementId')

这会导致类型错误:

getElementById() 不是函数。

有人可以帮忙吗?

谢谢!

【问题讨论】:

    标签: javascript frames frameset


    【解决方案1】:

    您需要获取框架的 Document 对象。

    window.frames[1].document.getElementById('someElementId')
    

    【讨论】:

      【解决方案2】:
      <frameset rows="33%,33%,*">
      <frame id="demo" src="frame1.html"/>
      <frame src="frame2.html"/>
      <frame src="frame3.html"/>
      </frameset>
      

      答案:

      document.getElementById("demo").contentDocument.documentElement.innerHTML;
      

      【讨论】:

      • document.getElementById("demo") 返回空值!!
      【解决方案3】:

      您也可以尝试使用框架名称

      window.frames['frame_name'].document.getElementsByName('element_name');   
      

      【讨论】:

      • 这不返回 windows 对象因此不会工作而 window.frames[1] 返回 windows 对象因此工作。
      • 在这里按名称获取帧,这是一个字符串,即 frame_name,给了我一个错误,element implicitly has an 'any' type because index expression is not of type 'number',必须在 tsconfig.json 中将 suppressImplicitAnyIndexErrors 设置为 true
      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多