| 
 Доступ к контенту внутри 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. Что не так у меня сделано? | 
| 
 Цитата: 
 Цитата: 
 | 
| 
 
<!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>
Без загрузки фрейма - нет доступа к окну | 
| 
 Можно просто  body.bgColor = 'green' | 
| 
 Цитата: 
 Мне Firebug в Chrome и FF не сообщает ничего подобного. Хотя FF сообщает нечто странное (в консоли сообщает): синтаксическая ошибка на строке 1 в файле html.html. Какими средствами отладки вы пользуетесь? | 
| 
 Цитата: 
 Цитата: 
 | 
| 
 Уже исправил, у меня там localhost был. Теперь ссылка нормальная, но все равно цвет фон меняется всеволишь на пол секунды, почему-то, а потом снова становится белым. Есть ли способ без всяких jquery отсрочить выполнение сценария до того, как все фреймы будут загружены? | 
| 
 Цитата: 
 Ruslan_xDD, не учи плохому. Если что-то как-то работает, то это не значит что так и нужно делать. | 
| 
 
<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, попробуйте contentDocument вместо contentWindow | 
| 
 Цитата: 
 | 
| 
 Странная фигня. На момент навешивания onload iframe.contentDocument имеет readyState = 'complete' но при этом location.href = 'about:blank' хз, фреймы - гавно. нафиг они тебе вобще вперлись? | 
| 
 Цитата: 
 | 
| 
 danik.js, по моему ты из-за себя дурака изображаешь ;) Всё везде прекрасно работает. | 
| 
 :write:  Цитата: 
 | 
| 
 Цитата: 
 http://www.******.ru/frame2/html.html | 
| 
 
(function()
{
   var a = document.getElementById('myiframe');
   a.onload = function()
   {
       a = a.contentWindow || a.contentDocument;
       a.document.body.bgColor = 'green';
   }
})();
Или вообще так: 
document.getElementById('myiframe').onload = function()
{
   var a = this.contentWindow || this.contentDocument;
   a.document.body.bgColor = 'yellow';
}
Оба варианта работают, проверял в опере и хроме. | 
| 
 hrundel, метод bes a))) | 
| 
 Ruslan_xDD, Спасибо. Оба твоих варианта работают. | 
| 
 Цитата: 
 Поэтому если эквивалент - то так: var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; | 
| 
 Кстати, а существует ли какой-нибудь стандарт вроде ECMAScript, который регламентирует как браузеры должны действовать со встроенными фреймами и как на javascript осуществлять к ним доступ? Может что-то такое есть в w3c? Откуда разработчики браузеров знают, как в их браузерах надо реализовывать доступ к фрейму на javascript? | 
| 
 В спецификациях w3c отражаются политики доступа, да. | 
| 
 Цитата: 
 | 
| Часовой пояс GMT +3, время: 14:41. |