1

我需要知道如何获取同一域上 iframe 中特定标签的总数。我目前正在使用这个没有 iframe 的工作示例:

<div id="id_of_first_div">
    <p>
    </p>
    <p>
    </p>
    <div>
        <p>
        </p>
    </div>
    <p>
    </p>
    <p>
    </p>
</div>

<script>
var top_level_div = document.getElementById('id_of_first_div');
var count = top_level_div.getElementsByTagName('p').length;
document.write(count);
</script>
4

3 回答 3

2

假设 iframe 与包含窗口位于同一域中:

ifr = // your preferred method of getting the <iframe> element, getElementById preferred
count = ifr.contentDocument.getElementsByTagName('p').length;
于 2013-02-12T19:21:43.567 回答
0

如果它在同一个域上:

function getFrameCount(iframeID, elem){
   var iFrame = document.getElementById(iframeID), iFrame_p;
   if ( iFrame.contentDocument ) { // FF etc.
     iFrame_p = iFrame.contentDocument.getElementsByTagName(elem);
   } else if ( iFrame.contentWindow ) { // IE
     iFrame_p = iFrame.contentWindow.document.getElementsByTagName(elem);
   }
   return iFrame_p.lenght;
}

var number_of_p = getFrameCount('iframeID', 'p');
于 2013-02-12T19:22:00.803 回答
0

创建漂亮代码的简单方法是创建获取 iframe 内容的方法,因为它在某些浏览器中有所不同。

function getIframeContent(frmName)
{
  var iframe = document.getElementById(frmName);
  var innerDoc = (iframe.contentDocument) ? iframe.contentDocument :   iframe.contentWindow.document;
  return innerDoc;
}

然后访问getIframeContent.getElementsByTagName.... 我希望这对您有所帮助的元素。

于 2013-02-12T19:25:35.810 回答