【问题标题】:javascript document.getElementById in other frames其他框架中的 javascript document.getElementById
【发布时间】:2010-12-20 22:22:14
【问题描述】:

我有两个框架,想从另一个框架访问一个框架中的元素:

第一帧:

<div id='someId'>...</div>

第 2 帧:

var div=document.getElementById('someId');

div.innerHTML='something'; 

这在 Firefox 中无法正常工作,所以我想确定一下,我可以通过 ID 访问另一个框架中的元素吗?

【问题讨论】:

    标签: javascript dom html-frames


    【解决方案1】:

    您可以通过使用引用另一帧

    window.frames["framename"]
    

    然后你可以通过使用来引用 DOM 中的元素

    window.frames["framename"].document.getElementById ( "yourelementid" );
    

    【讨论】:

    • 因此,无论在哪个框架中,浏览器都无法找到具有所需 ID 的第一个可用元素?
    • @as: getElementByid 仅限于查看作为方法的document 对象。请记住,一个框架实际上是一个单独的window 对象,并且对window->document 层次结构的检查应该清楚为什么一个document 上的方法不能在一个document 上检查一个不同的window.
    • 它在 chrome 中不起作用,window.frames['framename'].document 里面什么都没有。我的意思是windows.franes['framename'].ducumnet.getElementById(...)... 结果Uncaught TypeError: Cannot call method 'getElementByName' of undefined 错误。
    • 这对我不起作用,@Brian Duncan 的回答可以!
    【解决方案2】:

    问题可能是您所在的当前框架。如果window.frames['framename'] 不起作用,请尝试parent.frames['framename'] 访问顶级框架。

    if(parent.frames && parent.frames['framename']) {
       var elem = parent.frames['framename'].document.getElementById(...); 
       // etc
    }
    

    【讨论】:

      【解决方案3】:

      我在使用 JS 版本时遇到问题,但能够将这些示例用于工作的 jQuery 版本:

      var obj = $('#yourelementid', parent.frames["framename"].document);
      

      【讨论】:

        【解决方案4】:
        document.getElementById('frameId').contentDocument.getElementById('frameChild');
        

        【讨论】:

          【解决方案5】:

          或者,如果您想试试运气,可以只使用数字参数。

          window.frames[0].document

          【讨论】:

            【解决方案6】:

            由于某种原因

            window.frames["framename"].document.getElementById ( "yourelementid" );
            

            不适合我。

            这另一种方法做到了:

               document.getElementById('framename').contentWindow.document.getElementById('yourelementid');
            

            【讨论】:

              猜你喜欢
              • 2010-12-11
              • 1970-01-01
              • 1970-01-01
              • 2012-08-19
              • 2015-03-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-10-16
              相关资源
              最近更新 更多