2013-02-12 1 views
1

Мне нужно знать, как получить общий счет определенного тега внутри iframe в том же домене. Я в настоящее время использую этот рабочий пример без фрейма:JavaScript, No JQuery Как получить общий счет определенного тега внутри 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> 
+2

и что не так с вашим решением? –

+1

Вы не можете получить доступ к содержимому iframe. В противном случае вы можете указать его на «http: // common-bank.com /» и прочитать все данные пользователя. –

+1

Вы ошибаетесь @Waleed, вы не можете получить к нему доступ, только если он находится в другом домене. –

ответ

2

Предполагая, что IFrame находится на том же домене, содержащем окна:

ifr = // your preferred method of getting the <iframe> element, getElementById preferred 
count = ifr.contentDocument.getElementsByTagName('p').length; 
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'); 
0

Простой способ создания приятного кода - создать метод для получения содержимого iframe, вызывая его различие для некоторых браузеров.

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

, а затем доступ к элементам, как getIframeContent.getElementsByTagName.... Я надеюсь, что это поможет.

Смежные вопросы