Проблема вызова функции в соседнем iframe на JQuery
Ребята всю голову сломал. Просьба помочь.
Есть index.html содержит 2 iframe <iframe id='head' src="head.html"></iframe> <iframe id="list" src="list.html"></iframe> В head.html шапка и нужно, чтобы при нажатии на элемент <td> в шапке в файле list.html стиль <div> менялся на visible. Иными словами как из одного подгружаемого в iframe файла обратиться к элементам другого iframe файла. Пробовал обратиться из файла head.html , пробовал из index. html методом contents.find() ничего не помогает. Ранее в index.html были frame и функция вызываемая из head.html: function menu(){ var menu2=parent.frames[1].document.getElementById('menu'); menu2.style.visibility='visible'; } работала. UPD: В internet explorer работает. |
Andrey_szr, в одном домене создал 3 файла...
tmp.html <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <!-- <script src='https://code.jquery.com/jquery-latest.js'></script> --> <style type='text/css'> </style> <script type='text/javascript'> </script> </head> <body> <iframe id='head' src="tmp1.html"></iframe> <iframe id="list" src="tmp2.html"></iframe> </body> </html> tmp1.html <button>Test</button> <script type='text/javascript'> document.querySelector('button').onclick=function(){ var o=parent.frames[1].document.querySelector('div'); o.style.color='red'; }; </script> tmp2.html <div>Test</div> И все работает... ;) |
Опять же работает только в IE.
Думаю копать надо куда-то в направлении postMessage. Тем не менее спасибо за помощь. |
В Хроме и Файрфоксе работает, если все на сервере.
С локальной файловой системы работать не будет. При обращении к iframe используется политика одного источника (т.е. нужно, что бы они были с одного домена). Файловая система этого не поддерживает. Хотя возможно есть ключи, у браузеров, которыми для iframe это можно отменить. |
Цитата:
|
Часовой пояс GMT +3, время: 21:13. |