Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2013, 19:51
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Доступ к контенту внутри iframe из родительского документа
Есть страница со встроенным тегом <iframe>. И страница и подгружаемый контент находятся на одном домене. Использую способ взятый отсюда: http://learn.javascript.ru/iframes

<iframe src="javascript:'тест'" style="height:60px"></iframe>
<script>
  var iframe = document.getElementsByTagName('iframe')[0];
  var iframeDoc = iframe.contentWindow.document;
  iframeDoc.body.style.backgroundColor = 'green';
</script>


Но не получается изменить фон бэкграунда внутри ифрейма. Вот ссылка на наглядный пример: http://www.*****.ru/frame/html.html. Что не так у меня сделано?

Последний раз редактировалось hrundel, 19.07.2013 в 18:39.
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2013, 21:03
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от hrundel
Что не так у меня сделано?
А тебе вот это вообще ни о чем не говорит, не?
Цитата:
Object not found!

The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

If you think this is a server error, please contact the webmaster.

Error 404

localhost
07/14/13 03:02:18
Apache
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2013, 21:11
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<!DOCTYPE>
<html>
<body>
<div class="with-frame">
	<iframe src="/frame/inside.html" id="myiframe"></iframe>
</div>

<script type="text/javascript">
  var iframe = document.getElementsByTagName('iframe')[0];
  var iframeDoc = iframe.contentWindow.document;
  iframe.onload = function(){iframeDoc.body.style.backgroundColor = 'green'};
</script>


</body>
</html>

Без загрузки фрейма - нет доступа к окну
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2013, 04:13
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Можно просто
body.bgColor = 'green'
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2013, 09:06
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Сообщение от danik.js Посмотреть сообщение
А тебе вот это вообще ни о чем не говорит, не?
Не говорит. Откуда вы взяли это сообщение?

Мне Firebug в Chrome и FF не сообщает ничего подобного. Хотя FF сообщает нечто странное (в консоли сообщает): синтаксическая ошибка на строке 1 в файле html.html.

Какими средствами отладки вы пользуетесь?
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2013, 09:17
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Сообщение от danik.js Посмотреть сообщение
А тебе вот это вообще ни о чем не говорит, не?
Сообщение от Deff Посмотреть сообщение
<!DOCTYPE>
<html>
<body>
<div class="with-frame">
	<iframe src="/frame/inside.html" id="myiframe"></iframe>
</div>

<script type="text/javascript">
  var iframe = document.getElementsByTagName('iframe')[0];
  var iframeDoc = iframe.contentWindow.document;
  iframe.onload = function(){iframeDoc.body.style.backgroundColor = 'green'};
</script>


</body>
</html>

Без загрузки фрейма - нет доступа к окну
Вы хотите сказать, что js-код выполняется раньше, чем во фрейм загружается новый документ?
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2013, 09:21
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

Уже исправил, у меня там localhost был. Теперь ссылка нормальная, но все равно цвет фон меняется всеволишь на пол секунды, почему-то, а потом снова становится белым.
Есть ли способ без всяких jquery отсрочить выполнение сценария до того, как все фреймы будут загружены?
Ответить с цитированием
  #8 (permalink)  
Старый 14.07.2013, 10:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от hrundel
Есть ли способ без всяких jquery отсрочить выполнение сценария до того, как все фреймы будут загружены?
Тебе же Deff показал как такое сделать.
Ruslan_xDD, не учи плохому. Если что-то как-то работает, то это не значит что так и нужно делать.
Ответить с цитированием
  #9 (permalink)  
Старый 14.07.2013, 15:10
Кандидат Javascript-наук
Отправить личное сообщение для hrundel Посмотреть профиль Найти все сообщения от hrundel
 
Регистрация: 01.08.2009
Сообщений: 102

<script type="text/javascript">
	var iframe = document.getElementsByTagName('iframe')[0];
	var iframeDoc = iframe.contentWindow.document;
	iframe.onload = function(){iframeDoc.body.style.backgroundColor = 'green'};

	</script>

Вот мой код, который вставлен после закрывающего тега <html>. Можете посмотреть на том же самом наглядном примере http://www.*****.ru/frame/html.html, что ничего не работает.

Последний раз редактировалось hrundel, 19.07.2013 в 18:38.
Ответить с цитированием
  #10 (permalink)  
Старый 14.07.2013, 15:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

hrundel,
попробуйте contentDocument вместо contentWindow
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документ внутри документа begin29 Events/DOM/Window 4 23.03.2013 21:31
jQuery, запуск функции в iframe из родительского документа artnick jQuery 1 25.12.2011 18:03
В iframe применить стиль родительского окна Nikoole Элементы интерфейса 6 06.10.2011 21:50
iframe и как получить доступ к его содержимому syegorius jQuery 13 14.04.2011 22:05
Как получить текст внутри iframe на другом домене? Alexander Majesty Events/DOM/Window 1 23.12.2009 22:10