Показать сообщение отдельно
  #3 (permalink)  
Старый 22.10.2013, 13:24
Аспирант
Отправить личное сообщение для amigo* Посмотреть профиль Найти все сообщения от amigo*
 
Регистрация: 25.05.2010
Сообщений: 39

Сообщение от Deff Посмотреть сообщение
Если фрейм на том же домене, то можно так затестить URL фрейма
<iframe src="http://javascript.ru/forum/" name="myframe" height=500 width=100% onload="alert(myframe.window.document.URL)">
Видимо я недоступно объяснил суть вопроса . Потому, что, к сожалению, не могу понять зачем мне тестить URL.
Ещё раз.
* Есть html страничка (main.html):
<html>
	<head>
	</head>
	<body>
		<iframe id = "idIframe" src="iframehtml.html">			
		</iframe>		
	</body>
</html>

* Рядом в той же папке на сервере лежит iframehtml.html (страница, на которую ссылается iframe выше):
<html>
	<head>	
		<script type=text/javascript src=jquery-1.5.min.js></script>
	</head>
		<body>
			<div>
				Iframe html body
			</div>
			<input type=button id=goBtn value=go onclick="process()" />
			<script type=text/javascript> 
				function process() {
					beforeAction();
					//После перехода на process.html полностью изменится контент файла iframehtml.html
					$.get("/testiframe/process.html");
					setTimeout(function () {						
						window.top.document.getElementById("idIframe").contentDocument.location.reload(true);						
					}, 5000)					
				}

				function beforeAction() {
					window.top.setInterval(function () {console.log(new Date())}, 1000);

					var c = window.top.document.getElementById("idIframe");					

					c.__appendChild = c.appendChild;
					c.appendChild = function(){
						 alert('new item added');
						 c.__appendChild.apply(c, arguments); 
					}

					$("#idIframe").load(function () {
						alert(1)
					})

				}
			</script>
		</body>
</html>

* В iframehtml.html есть кнопка, по нажатию на которую, сабмитятся поля в айфрейме и контент файла iframehtml.html полностью изменяется со стороны сервера. Со стороны же клиента происходит reload и контент обновляется (Предположительно через window.top.document.getElementById("idIframe").con tentDocument.location.reload(true))
* У меня нет доступа к main.html и iframehtml.html. Но со стороны сервера я могу писать код, который при загрузке страниц попадёт в функцию beforeAction().
* Вопрос. Могу ли я написать такой код (какой?) в функции beforeAction, чтобы при reload айфрейма я всё ещё имел контроль над выполнением кода. Т.е., например, в идеале хотелось бы добавить setInterval для main.html, который бы каждые 500 мс проверял бы содержимое айфрейма, и как только он перезагрузится полностью, то я мог бы сделать redirect или выполнить ещё какой-то код.
Ответить с цитированием