Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   FancyBox или передача данных (https://javascript.ru/forum/misc/2577-fancybox-ili-peredacha-dannykh.html)

greatilya 18.01.2009 10:23

FancyBox или передача данных
 
Использую FancyBox для всплавающих окон (http://fancy.klade.lv/). Столкнулся с проблемой: мне необходимо во всплаывающем окне отобразить html страницу, допустим, со ссылкой "привет", а при нажатии на неё, в главном окне допустим с id="privet" написать "привет". По сути, если я не ошибаюсь, всплывающее окно там реализовано с помощь iframe. Как получить из всплавающего окна доступ к главному? opener не помогает.

Octane 18.01.2009 12:54

Почитайте документацию к скрипту, в каком-то методе обязательно должна возвращаться ссылка на созданный фрейм. Ну а если нет, то придется перебирать коллекцию window.frames.

greatilya 18.01.2009 13:15

Спасибо, но если вдруг кто то уже делал подобные манипуляции, просьба писать в пост. Пока буду разбираться. Сложноватая там система, для меня))) Но как говориться: "Ученье - свет!"

greatilya 18.01.2009 13:52

а подскажите может мне это поможет:
<div id="qqq"></div>
<iframe ..... все параметры></iframe>

Документ в iframe:
<a href="javascript:?????????">CLICK ME</a>

что можно написать заместо этих "???????", чтобы изменять свойства div? или это запрещено политикой безопасности брайзеров? Метод
document.getElementById('qqq')
не работает

x-yuri 18.01.2009 21:12

разве там iframe создается? у меня в ff div виден
<div id="fancy_wrap"><div id="fancy_loading" style="left: 482px; top: 565.5px; display: none;"><div style="top: -440px;"/></div><div id="fancy_outer" style="top: 466px; left: 427px; height: 159px; width: 110px; display: block;"><div id="fancy_inner"><div id="fancy_bg" style="display: block;"><div class="fancy_bg fancy_bg_n"/><div class="fancy_bg fancy_bg_ne"/><div class="fancy_bg fancy_bg_e"/><div class="fancy_bg fancy_bg_se"/><div class="fancy_bg fancy_bg_s"/><div class="fancy_bg fancy_bg_sw"/><div class="fancy_bg fancy_bg_w"/><div class="fancy_bg fancy_bg_nw"/></div><div id="fancy_nav"/><div id="fancy_close" style="display: block;"/><div id="fancy_content" style="display: block;"><img src="http://fancy.klade.lv/img/examples/13_b.jpg?rand=90360946" id="fancy_img"/></div><div id="fancy_title" style="display: block;"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td id="fancy_title_left"/><td id="fancy_title_main"><div>This is the ART</div></td><td id="fancy_title_right"/></tr></tbody></table></div></div></div></div>

это с http://fancy.klade.lv/
попробуйте в onclick написать alert(top.frames.length); должно 1 выдать

greatilya 19.01.2009 22:32

вставил этот код, выдал 3. Код я вставил в страницу, которая открывается во всплывающем окне.
сижу разбираюсь с jquery пока из всплывающего окна не могу доступ к основной странице (

x-yuri 19.01.2009 23:20

какой браузер? у Вас есть фреймы в самой странице? в firebug (firefox) есть удобная функция - inspect, есть firebug lite для всех браузеров (не знаю правда, есть ли там такое), позволяет исследовать создержимое странички
и попробуйте top.frames[i].document.getElementById('...')

greatilya 19.01.2009 23:36

<div id="location_text"></div>
<div id="fancy_wrap">
	<div id="fancy_loading">
		<div></div>
	</div>
	<div id="fancy_outer">
		<div id="fancy_inner">
			<div id="fancy_bg">
				<div class="fancy_bg fancy_bg_n"></div>
				<div class="fancy_bg fancy_bg_ne"></div>
				<div class="fancy_bg fancy_bg_e"></div>
				<div class="fancy_bg fancy_bg_se"></div>
				<div class="fancy_bg fancy_bg_s"></div>
				<div class="fancy_bg fancy_bg_sw"></div>
				<div class="fancy_bg fancy_bg_w"></div>
				<div class="fancy_bg fancy_bg_nw"></div>
			</div>
			<div id="fancy_nav"></div>
			<div id="fancy_close"></div>
			<div id="fancy_content">
				<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe_СЛУЧАЙНОЕ_ЧИСЛО" frameborder="0" hspace="0" src="АДРЕС_СТРАНИЦЫ"></iframe>
			</div>
			<div id="fancy_title">
				<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>
			</div>
		</div>
	</div>
</div>


как видно из кода, создается iframe, который загружает нужную страницу
<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe_СЛУЧАЙНОЕ_ЧИСЛО" frameborder="0" hspace="0" src="АДРЕС_СТРАНИЦЫ"></iframe>

Не могу решить следующую тему:
что нужно написать в странице, загружаемой во фрейме, чтобы в div id="location_text" (в первой строке моего примера) записать допустим innerHTML. Как к нему обратиться?

x-yuri 20.01.2009 02:57

укажите html-код и javascript-код для fancybox (ссылка с содержимым и как она инициализируется)

greatilya 20.01.2009 10:43

Объявление
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.fancybox.js"></script>
<script type="text/javascript" src="jquery.pngFix.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	$("a#link_to_window").fancybox({
		'zoomSpeedIn':	0, 
		'zoomSpeedOut':	0, 
		'overlayShow':	true
	});
	
});
</script>


Использование:
<a href="index.php?content=yes&select_folder=yes" id="link_to_window">выбор папки</a>


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