Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.07.2012, 01:15
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

да, я до этого додумался уже, только почему то забыл написать(сел в WOT поиграть)
вот что мне пришло на в голову
<!DOCTYPE HTML>
<html>
  <head>
    <script>
    
    
		var scr = document.createElement('script');
		   scr.type = 'text/javascript';
			  scr.id = 'DomLoadedScript';
		
			(function body_end(){
				
				try {
					
					document.body.appendChild(scr);
                      alert(document.body.innerHTML);
					} catch(e){
						
						setTimeout(body_end,0);
						}
				
				}());
    </script>
  
  </head>
  <body>


<script >


function handler(){
	alert('готов');
	
	}
</script>
<img src="http://worldoftanks.ru/dcont/fb/media/batchat_ru_june_clear/1920x1200.jpg">
<img id="img" src="http://wallpaper.goodfon.ru/image/302908-2880x1800.jpg"/>

</body>
</html>

переделал немного совю первую функцию, в боди можно добавить только после полной загрузки=)
Ответить с цитированием
  #12 (permalink)  
Старый 14.07.2012, 01:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
в боди можно добавить только после полной загрузки=)
кто тебе это сказал?
<body>
<script>
    document.body.appendChild( document.createElement('b') );
    alert( document.body.innerHTML );
</script>
<div></div>
<script>
    alert( document.body.innerHTML );
</script>
</body>
в потоке можно делать что угодно
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #13 (permalink)  
Старый 14.07.2012, 01:24
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

cyber, вот на твоем примере:
<!DOCTYPE HTML>
<html>
  <head>
    <script>
     
     
        var scr = document.createElement('script');
           scr.type = 'text/javascript';
              scr.id = 'DomLoadedScript';
         
            (function body_end(){
                 
                try {
                     
                    document.body.appendChild(scr);
                      alert(document.body.innerHTML);
                    } catch(e){
                         
                        setTimeout(body_end,0);
                        }
                 
                }());
    </script>
   
  </head>
  <body>
 
 
<script >
 
 
function handler(){
    alert('готов');
     
    }
</script>
<script>
    for( var i = 0; i < 10000; i++ ) {} // просто задержка, вместо задержки может быть тысяча тегов иль еще чего.
</script>
<img src="http://worldoftanks.ru/dcont/fb/media/batchat_ru_june_clear/1920x1200.jpg">
<img id="img" src="http://wallpaper.goodfon.ru/image/302908-2880x1800.jpg"/>
 
</body>
</html>
в результате видим алерт с содержимым:
<script>
 
 
function handler(){
    alert('готов');
     
    }
</script>
<script>
    for( var i = 0; i < 10000; i++ ) {} // просто задержка, вместо задержки может быть тысяча тегов иль еще чего.
</script><script type="text/javascript" id="DomLoadedScript"></script>
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #14 (permalink)  
Старый 14.07.2012, 01:27
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

у меня такой алерт
<script>
 
 
function handler(){
    alert('готов');
     
    }
</script>
<script>
    for( var i = 0; i < 10000; i++ ) {} // просто задержка, вместо задержки может быть тысяча тегов иль еще чего.
</script>
<img src="http://worldoftanks.ru/dcont/fb/media/batchat_ru_june_clear/1920x1200.jpg">
<img id="img" src="http://wallpaper.goodfon.ru/image/302908-2880x1800.jpg">
 


<script type="text/javascript" id="DomLoadedScript"></script>
Ответить с цитированием
  #15 (permalink)  
Старый 14.07.2012, 01:29
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

потом по тестю на большой странице.
а какие еще есть варианты для старых браузеров?
Ответить с цитированием
  #16 (permalink)  
Старый 14.07.2012, 01:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
у меня такой алерт
а у меня другой.. и это уже говорит о том что раз на раз не приходится.. тут все зависит от интерпретатора скрипта, на сколько он отложит выполнение setTimeout
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #17 (permalink)  
Старый 14.07.2012, 01:31
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
а какие еще есть варианты для старых браузеров?
никаких, только то что используют везде.

И еще вопрос а нафига тебе это? То что давно всеми используется нормально работает.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #18 (permalink)  
Старый 14.07.2012, 03:22
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от devote Посмотреть сообщение
никаких, только то что используют везде.

И еще вопрос а нафига тебе это? То что давно всеми используется нормально работает.
дак я пытался взять скрипт из этой статьи http://javascript.ru/tutorial/events/ondomcontentloaded вроде понял как он пашет, да вот только в ие не работает,а проверить почему не могу нужно скачать xp для виртуалки что бы запустить и посмотреть ошибки...
вот код со страницей что бы запустить http://learn.javascript.ru/play/Xegrjb.
Ответить с цитированием
  #19 (permalink)  
Старый 14.07.2012, 03:41
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вот работает везде(покрайнимере я не нашел где не работате )
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	
    <script >
var DOM = {}

function ready(){
	
if(!document.addEventListener){
	
  document.addEventListener('DOMContentLoaded',DOM.loaded,false);
	
	} else {
			var scr = document.createElement('script');
		   scr.type = 'text/javascript';
		   scr.text = 'DOM.loaded()';
			  scr.id = 'DomLoadedScript';
		
			(function body_end(){
				
				try {
					
					document.body.appendChild(scr);
					} catch(e){
						
						setTimeout(body_end,0);
						}
				
				}());
		
		} 
}

DOM.loaded = function (){
	
	handler();
	 img_src();
	}


ready();

	



</script>
  
  

</head>
<body>

<script >
function img_src(){
	
	alert(document.body.innerHTML);
	}

function handler(){
	alert('готов');
	
	}
</script>
<img src="http://worldoftanks.ru/dcont/fb/media/batchat_ru_june_clear/1920x1200.jpg">
<img id="img" src="http://wallpaper.goodfon.ru/image/302908-2880x1800.jpg"/>

</body>
</html>
Ответить с цитированием
  #20 (permalink)  
Старый 14.07.2012, 03:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
дак я пытался взять скрипт из этой статьи
function DOMReady( callback ) {
  
    if ( document.readyState === "complete" ) {
        return setTimeout( callback, 1 );
    }
  
    var loaded = function( doScroll ) {
        if ( document.removeEventListener ) {
            document.removeEventListener( 'DOMContentLoaded', loaded, false );
            window.removeEventListener( 'load', loaded, false );
            loaded = null;
            callback();
        } else if ( document.detachEvent ) {
            if ( document.readyState === "complete" || doScroll === null ) {
                document.detachEvent( 'onreadystatechange', loaded );
                window.detachEvent( 'onload', loaded );
                loaded = null;
                callback();
            }
        }
    }
  
    if ( document.addEventListener ) {
        document.addEventListener( "DOMContentLoaded", loaded, false );
        window.addEventListener( "load", loaded, false );
    } else if ( document.attachEvent ) {
        document.attachEvent( "onreadystatechange", loaded );
        window.attachEvent( "onload", loaded );
  
        var toplevel = false;
        try {
            toplevel = window.frameElement == null;
        } catch( _e_ ) {}
  
        if ( document.documentElement.doScroll && toplevel ) {
            var check = function() {
                if ( !loaded ) return;
                try {
                    document.documentElement.doScroll( "left" );
                } catch( _e_ ) {
                    setTimeout( check, 0 );
                    return;
                }
                loaded( null );
            }
            check();
        }
    }
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 14.07.2012 в 03:59.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по DOMContentLoaded Newbie_ Events/DOM/Window 10 19.08.2010 20:00
DOMContentLoaded и defer HelpeR Events/DOM/Window 9 16.11.2009 15:36