Как получить элемент внутри элемента iframe в Javascript?
у меня есть элемент, как показано ниже внутри документа, я мог бы получить элемент iframe по document.getElementById('iframe_id')
, но как получить элемент внутри этого iframe? Я пытался!--2--> и вернулся DOMWindow
не имеет свойств. Также пробовал iframeElement.docuemnt
и iframeElement.contentDocument
, оба они не определены. Как я могу его получить? Я использую последний Chrome в своем эксперименте.
вот элемент iframe
<iframe id='iframe_id'>
<html>
<body>many content here</body>
</html>
</iframe>
3 ответов
содержимое iframe можно опрашивать только в том случае, если оно имеет тот же протокол, домен и номер порта, что и сценарий, который его опрашивает. Она называется ТОГО ЖЕ ПРОИСХОЖДЕНИЯ
Если это так, то этот код будет показывать контент. Если нет-вы не можете получить доступ к iframe из обычного скрипта на обычной html-странице
демо - протестировано в IE8, Chrome 13 и Fx6
function showIframeContent(id) {
var iframe = document.getElementById(id);
try {
var doc = (iframe.contentDocument)? iframe.contentDocument: iframe.contentWindow.document;
alert(doc.body.innerHTML);
}
catch(e) {
alert(e.message);
}
return false;
}
<iframe id='iframe_id1' src="javascript:parent.somehtml()"> </iframe>
<br/>
<a href="#" onclick="return showIframeContent('iframe_id1')">Show</a>
<hr/>
<iframe id='iframe_id2' src="http://plungjan.name/"> </iframe>
<br/>
<a href="#" onclick="return showIframeContent('iframe_id2')">Show</a>
<hr/>
наличие:
var iframe = document.getElementById('iframe_id');
чтобы получить документ содержимого, вы можете использовать:
var contDoc = iframe.contentDocument || iframe.contentWindow.document;
затем вы можете искать свой элемент внутри iframe по ID.
вы должны иметь доступ к нему document.getElementById('yourIFrame').document.getElementById('yourElement')