Как получить доступ к iframe?
Как вызывать функции из фрэйма и получить доступ к dom?
<html> <head> <script type="text/javascript"> function needed(){ // выполняемые действия document.write(window.frames["fr"].contentWindow.document.childNodes.length); // доступ по индексу тоже не работает } </script> </head> <body onclick="needed()"> <iframe src="frame.html" id="fr"/> </body> </html> Пробовал: window.frames["fr"].contentWindow.document window.frames["fr"].contentDocument window.frames["fr"].document window.frames["fr"] document.getElementById("fr").contentDocument document.getElementById("fr").contentWindow.document document.getElementById("fr").document document.getElementById("fr") |
У документа нету детей, есть только у корневого элемента. Корневой элемент можно найти по ссылке
document.documentElement. Для iframe это будет: frameElement.contentWindow.document.documentElement |
у документа есть ребенок - <html>
|
Был не прав :)
<html> <head> <script type="text/javascript"> window.onload = function(){ // выполняемые действия alert(document.getElementById('fr').contentWindow.document.childNodes.length); // доступ по индексу тоже не работает } </script> </head> <body> <iframe src="javascript:true;" id="fr"/> </body> </html> |
Некромант - твой код не работает.
У кого какие еще варианты? |
Не знаю, где у тебя не работает, у меня даже IE 5 сработал правильно.
|
а что делать со строчкой <iframe src="javascript:true;" id="fr"/> ? Мне нужна строка <iframe src="frame.html" id="fr"/>
|
Так подставь туда свою ссылку, я не знаю твоего сайта, что бы загрузить твой файл и сымитировал просто html документ. Разницы нету. Разве что неправильно сработает событие onload.
<html> <head> <script type="text/javascript"> var testIframe = function(iframe){ // выполняемые действия alert(iframe.contentWindow.document.childNodes.length); // доступ по индексу тоже не работает } </script> </head> <body> <iframe src="javascript:true;" onload="testIframe(this)" id="fr"/> </body> </html> Лучше так. |
Проблема решена. Код у меня был написан правильно. И проблема совсем в другом заключалась.
Надо было эту всю шнягу через сервер запускать! А я создал два файлика .html на диске D:\, открыл ПКМ и давай их юзать. В принципе все должно работать!? Ведь js браузер обрабатывает?! Ну и ладно. Некроманту спасибо за проявленный интерес! |
Цитата:
Для одного - пожалуйста. .html на диске D:\ и страница с сервера имеют разные домены. Потому не работало. |
Часовой пояс GMT +3, время: 18:34. |