Как получить доступ к 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, время: 21:23. |