Загрузка JS библиотек в iframe и вызов функции от имени родителя
Доброго всем времени суток. Есть такая задача:
два файла index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<iframe id="frame1" src="frame1.html"></iframe>
<button onClick="document.getElementById('frame2').contentWindow.Run();">run</button>
</body>
</html>
и frame1.html
<!DOCTYPE html><html><head><title></title>
<script>
window.Run = function ()
{
body=document.getElementsByTagName("body")[0];
alert(body.innerHTML);
}
</script></head><body>frame</body></html>
Данная конструкция работает и по клику на кнопку нам выдаст алертом слово "frame". Как сделать, чтобы алерт выдавал body родителя а не iframe??? функцию Run() править запрещено, поэтому не предлагайте :
window.Run = function ()
{
body=window.parent.document.getElementsByTagName("body")[0];
alert(body.innerHTML);
}
и конструкция
window.parent.Run = function (){...}
тоже не потходит.Как из iframe обьяснить родителю что у него есть функция Run() и она будет работать от имени родителя в родительском окне, не трогая iframe?????????????? |
Цитата:
|
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <iframe id="frame1" name="frame1" src="frame1.html"></iframe> <button onClick="frame1.Run();">run</button> </body> </html> |
НЕТ.
Все это приведет к алерту "frame", а не контента body родителя. |
ANDRUkomod,
Сделайте как советую, - Выложите ссылку на тестовую страницу frame1.Run() - Запуск функции во фрейме, если Вы боитесь запутаться - можно поменять имя фрейма на иное <!DOCTYPE html> <html> <head> <title></title> </head> <body> <iframe id="frame1" name="frame001" src="frame1.html"></iframe> <button onClick="frame001.Run();">run</button> </body> </html> Во фрейме такая функция
window.Run = function ()
{
var parent_body = window.parent.document.body;
alert(parent_body.innerHTML);
}
|
| Часовой пояс GMT +3, время: 17:26. |