Как добавить событие на 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> |
Цитата:
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); } |
а почему
document.getElementsByTagName('body')[0] а не document.body ? |
Цитата:
|
<!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,
И что - ти кликаешь по фрейму и есть - alert("Клик") ? |
да не чет я затупил
клик не срабатывает... |
Цитата:
<!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> |
body это тоже блочный элемент, он как дивак, если есть внутри что-то тогда и растягивается.. в противном случае просто высота 0px
|
devote,
CПС! (плюсы - не дают ставить |
devote,
А еще, :write: не подскажете - как добавить простейший скрипт во фрейм - (<script>alert('A')</script> ) *создание тега на родителе и вставка - не вышло(может как и с body - что-то упустил ? |
Цитата:
<!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 doc = document.getElementsByName('iframe01')[0].contentWindow.document; var script = doc.createElement( 'script' ); script.text = "alert('Hello!')"; doc.body.appendChild( script ); doc.body.style.height = "100%"; doc.body.onclick = function() { alert("Клик") } alert('Load'); } </script> <iframe id="Iframe01" name="iframe01" src="http://lookatcode.com/showhtml" onload="LoadF()"> </body> </html> |
devote, ++ Бу должен СПС
|
devote,
![]() А можно тож самое можно сделать не тегом <script>, а созданием и добавкой функции с автозапуском ? |
:)
|
Цитата:
|
devote,
Ну мы же можем создать функцию на родителе ? (function () { alert('Hello') }()) Очевидно наверно также мы можем создать и во фрейме (находясь на родителе? |
Цитата:
(function( window, document ) { alert( 'Hello' ) }( document.getElementsByName('iframe01')[0].contentWindow, document.getElementsByName('iframe01')[0].contentWindow.document )); |
devote,
Ды чот помню видел - типо присвоения <!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 doc = document.getElementsByName('iframe01')[0].contentWindow.document; doc=(function () { alert('Hello') }()) doc.body.style.height = "100%"; doc.body.onclick = function() { alert("Клик") } alert('Load'); } </script> <iframe id="Iframe01" name="iframe01" src="http://lookatcode.com/showhtml" onload="LoadF()"> </body> </html> |
:dance:
|
![]() doc=(function () { alert('Hello') }()) не Пашет ....Хнык |
<!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 win = document.getElementsByName('iframe01')[0].contentWindow, doc = win.document; win.eval.call( win, (function(){ // тут все выполняется в контексте iframe function lala() { alert( 'lala' ); } alert( 'Hello' ); }).toString().replace(/^function\(\){/,'').replace(/}$/,'')); var script = doc.createElement( 'script' ); script.text = "lala()"; doc.body.appendChild( script ); doc.body.style.height = "100%"; doc.body.onclick = function() { alert("Клик") } alert('Load'); } </script> <iframe id="Iframe01" name="iframe01" src="http://lookatcode.com/showhtml" onload="LoadF()"> </body> </html> |
devote,
Пасиб, - буду пробовать! |
Часовой пояс GMT +3, время: 17:19. |