Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема вызова функции в соседнем iframe на JQuery (https://javascript.ru/forum/misc/79784-problema-vyzova-funkcii-v-sosednem-iframe-na-jquery.html)

Andrey_szr 24.03.2020 17:10

Проблема вызова функции в соседнем 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 работает.

ksa 25.03.2020 07:40

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>

И все работает... ;)

Andrey_szr 25.03.2020 17:50

Опять же работает только в IE.
Думаю копать надо куда-то в направлении postMessage.
Тем не менее спасибо за помощь.

voraa 25.03.2020 18:03

В Хроме и Файрфоксе работает, если все на сервере.
С локальной файловой системы работать не будет. При обращении к iframe используется политика одного источника (т.е. нужно, что бы они были с одного домена). Файловая система этого не поддерживает.
Хотя возможно есть ключи, у браузеров, которыми для iframe это можно отменить.

ksa 26.03.2020 07:27

Цитата:

Сообщение от Andrey_szr
Опять же работает только в IE.

Я на Опере запускал...


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