Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получение значение DIV'а из iFrame'e (https://javascript.ru/forum/events/54549-poluchenie-znachenie-div%27-iz-iframe%27e.html)

free4shoot 22.03.2015 10:24

Получение значение DIV'а из iFrame'e
 
День, добрый.
Помогите решить задачу.


<body>

<iframe id="myframe" src="https://some_site/doc.html"></iframe>

<script>

var htmlDoc = document.getElementsByTagName('iframe')[0].contentWindow.document;
alert ( htmlDoc );    
</script>

</body>



Документ в iFrame

<body>
<div></div>
<div id="wrapper">0</div>
</body>


Я хочу получить значение div'а (с id="wrapper", в данном случае это 0) в переменную.

Обращение к htmlDoc.getElementById( 'wrapper' ) результата не дает. :-/

Alexander Belov 22.03.2015 10:46

var x = document.getElementById("wrapper").innerHTML

free4shoot 22.03.2015 15:44

Так пробовал. Не работает.

Если вызвать alert ( htmlDoc );, то идет сообщение

"Оповещение JavaScript

[object HTMLDocument]"


При вызове alert ( x )

при условии что var x = document.getElementById("wrapper").innerHTML или
var x = htmlDoc.getElementById("wrapper").innerHTML

Тишина. А должно появиться сообщение "0" (т.к. <div id="wrapper">0</div>).

Alexander Belov 22.03.2015 15:57

alert выводит ноль
http://jsbin.com/lejonitume/1/edit?html,js,output

free4shoot 26.03.2015 18:02

Да, но у вас блок <div id="wrapper">0</div> находится в том же документе что и форма <iframe id="myframe" src="https://some_site/doc.html"></iframe>


В моем случае <div id="wrapper">0</div> это часть документа doc.html, который загружается в iframe.

Alexander Belov 26.03.2015 20:33

free4shoot,
Тогда так делаем:

//Это твой index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<iframe id="myframe" src="doc.html"></iframe>

<script>
function get(theNumber) {
document.getElementById("wrapper").src=theNumber+" .html";
return false;
}
function retrieveData() { get("myframe"); return false;
};

</script>
</script>

</body>
</html>

//Это твой doc.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>

<div id="wrapper">123456</div>


</body>
</html>

free4shoot 07.04.2015 17:14

Не работает.

Я почти докопался до сути))

<iframe id="myframe" src="https://some_site.ru/1473473.html" onload="getFrameDiv()"></iframe>

<script>
function getFrameDiv () {
var htmlDoc = document.getElementById("myframe").contentDocument ;
var Div = htmlDoc.getElementById("wrapper");
alert ( Div );
}
</script>



И я, блин, получаю в переменную Div дивку с ID “wrapper”:




У этого дива значение innerHTML должно быть 12




Но его нет!



Часовой пояс GMT +3, время: 16:16.