Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как добавить событие на document в Iframe ? (https://javascript.ru/forum/events/29852-kak-dobavit-sobytie-na-document-v-iframe.html)

Deff 13.07.2012 22:50

Как добавить событие на document в Iframe ?
 
Есть главная и фрейм c этого же домена,
После onload фрейма -на body фрейма необходимо добавить событие onunload - Подскажите...буду рад всем ответам! (доступа к серверу - нет!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://forum.mybb.ru/style/Mybb_Bend/Mybb_Bend.css" />
</head>
<body>
<iframe id="Iframe01" name="iframe01" src="../frameLoad.html" onload="LoadF()">
<script type="text/javascript">
LoadF(){
 //Tут добавить событиеж
}
</script>
</body>
</html>

lord2kim 13.07.2012 23:17

Цитата:

Сообщение от Deff (Сообщение 188610)
Есть главная и фрейм c этого же домена,
После onload фрейма -на body фрейма необходимо добавить событие onunload - Подскажите...буду рад всем ответам! (доступа к серверу - нет!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://forum.mybb.ru/style/Mybb_Bend/Mybb_Bend.css" />
</head>
<body>
<iframe id="Iframe01" name="iframe01" src="../frameLoad.html" onload="LoadF()">
<script type="text/javascript">
LoadF(){
 //Tут добавить событиеж
}
</script>
</body>
</html>

function LoadF(){
	document.getElementsByName('iframe01')[0].contentWindow.document.getElementsByTagName('body')[0].onunload = function() { alert("валим") };
	alert(document.getElementsByName("iframe01")[0].contentWindow.document.getElementsByTagName("body")[0].onunload);
}

cyber 13.07.2012 23:22

а почему
document.getElementsByTagName('body')[0]
а не
document.body ?

lord2kim 13.07.2012 23:26

Цитата:

Сообщение от cyber (Сообщение 188620)
а почему
document.getElementsByTagName('body')[0]
а не
document.body ?

по привычке...

Deff 14.07.2012 00:29

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://forum.mybb.ru/style/Mybb_Bend/Mybb_Bend.css" />
</head>
<body>
<script type="text/javascript">
alert(document.URL)
 //Tут добавить событие;
function LoadF(){
document.getElementsByName('iframe01')[0].contentWindow.document.getElementsByTagName('body')[0].onclick = function() {
  alert("Клик")
   };
   alert('Load');
}
</script>
<iframe id="Iframe01" name="iframe01" src="http://lookatcode.com/showhtml" onload="LoadF()">

</body>
</html>
:( Чот не хочет - (* аlertы, чтобы - показать что загрузка есть и адрес фрейма тот жа
События onclick - не добавилось!

cyber 14.07.2012 00:43

в опере показало все ок

Deff 14.07.2012 00:45

cyber,
И что - ти кликаешь по фрейму и есть - alert("Клик") ?

cyber 14.07.2012 01:16

да не чет я затупил
клик не срабатывает...

devote 14.07.2012 02:46

Цитата:

Сообщение от Deff
И что - ти кликаешь по фрейму и есть - alert("Клик") ?

потому что высота body элемента 0px от того и нет клика, надо так делать:
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://forum.mybb.ru/style/Mybb_Bend/Mybb_Bend.css" />
</head>
<body>
<script type="text/javascript">
    alert(document.URL)
    //Tут добавить событие;
    function LoadF(){
        var b = document.getElementsByName('iframe01')[0].contentWindow.document.getElementsByTagName('body')[0];
        b.style.height = "100%";
        b.onclick = function() {
            alert("Клик")
        }
        alert('Load');
    }
</script>
<iframe id="Iframe01" name="iframe01" src="http://lookatcode.com/showhtml" onload="LoadF()">
 
</body>
</html>

devote 14.07.2012 02:47

body это тоже блочный элемент, он как дивак, если есть внутри что-то тогда и растягивается.. в противном случае просто высота 0px


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