Загрузка 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, время: 05:04. |