Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   подключение скриптов в скрипте (https://javascript.ru/forum/misc/23680-podklyuchenie-skriptov-v-skripte.html)

elagin91 01.12.2011 22:36

подключение скриптов в скрипте
 
Как подключить скрипт в скрипте?
Есть файл index в котором написано
<script src='index.js'></script>
<noscript>Пожалуйста включите JavaScript</noscript>


В index.js хочу подключить ещё один скрипт, не подскажите как???

--------------------------------------------------
Отвечаю заранее на некоторые вопросы:
1. >Как я собираюсь сделать сайт где просто подключен script ?
1.Ответ. >В index.js я просто активно использую document.write("");

2. >Почему я не пропишу в index два раза <script src='...'></script>
2.Ответ. > В общем надо так.
---------------------------------------------------

document.write("<script src='...'></script>"); не работает.

devote 01.12.2011 23:09

var script = document.createElement("SCRIPT"),
     head = document.getElementsByTagName( "head" )[ 0 ];

script.type = "text/javascript";
script.src = 'newscript.js';
head.appendChild( script );

elagin91 01.12.2011 23:35

Все равно не работает, если более точнее то скрипт нужно подключить по ссылке
http://ajax.googleapis.com/ajax/libs.../jquery.min.js (это jquery)

devote 01.12.2011 23:49

просто вы пытаетесь юзать jquery не дождавшись загрузки файла.

elagin91 01.12.2011 23:53

А как сделать чтобы jquery сначала загрузился а потом использовать фунции?

devote 01.12.2011 23:58

сделать почти невозможно, тоесть некоторые недобраузеры, такие как ИЕ не будут говорить об успешной загрузке скрипта.

ну а вообще примерно так:

function loadScripts( src, callback ) {
	var script = document.createElement("SCRIPT"),
		head = document.getElementsByTagName( "head" )[ 0 ],
		error = false;

	script.type = "text/javascript";

    script.onload = script.onreadystatechange = function( e ){

	    if ( ( !this.readyState || this.readyState == "loaded" || this.readyState == "complete" ) ) {
			if ( !error ) {
				removeListeners();
		        callback( true );
			} else {
		        callback( false );
			}
	    }
    };

	script.onerror = function() {
		error = true;
		removeListeners();
        callback( false );
	}

	function errorHandle( msg, url, line ) {

		if ( url == src ) {
			error = true;
			removeListeners();
	        callback( false );
		}
		return false;
	}

	function removeListeners() {
       	script.onreadystatechange = script.onload = script.onerror = null;

		if ( window.removeEventListener ) {
			window.removeEventListener('error', errorHandle, false );
		} else {
			window.detachEvent("onerror", errorHandle );
		}
	}

	if ( window.addEventListener ) {
		window.addEventListener('error', errorHandle, false );
	} else {
		window.attachEvent("onerror", errorHandle );
	}

	script.src = src;
    head.appendChild( script );
}


loadScripts('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', function( status ){
    if ( status ) {
        alert("Ура! Скрипт готов к работе и мы можешь юзать его функции. Объект jQuery: " + jQuery );
    }
});

elagin91 02.12.2011 16:41

Этот скрипт у меня не пошёл (через гугл)
Но я нашёл способ:
В index.js
document.write("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>");
document.write("<div id='1'>Жду</div>");
document.write("<script>$('#1').html('ОК')</script>");

devote 02.12.2011 16:49

Цитата:

Сообщение от elagin91
Этот скрипт у меня не пошёл (через гугл)

что значит не пошел через гугл? я специально сделал кнопку посмотреть, и оно работает.

elagin91 02.12.2011 18:30

То что при нажатии появляется надпись "Ура! Скрипт готов к работе и мы можешь юзать его функции. Объект jQuery: ..." - это да, а функции jquery не выполняются то

devote 02.12.2011 18:52

Цитата:

Сообщение от elagin91
То что при нажатии появляется надпись "Ура! Скрипт готов к работе и мы можешь юзать его функции. Объект jQuery: ..." - это да, а функции jquery не выполняются то

что за бред???


<div class="results"></div>

<script type="text/javascript">
function loadScripts( src, callback ) { 
    var script = document.createElement("SCRIPT"), 
        head = document.getElementsByTagName( "head" )[ 0 ], 
        error = false; 
  
    script.type = "text/javascript"; 
  
    script.onload = script.onreadystatechange = function( e ){ 
  
        if ( ( !this.readyState || this.readyState == "loaded" || this.readyState == "complete" ) ) { 
            if ( !error ) { 
                removeListeners(); 
                callback( true ); 
            } else { 
                callback( false ); 
            } 
        } 
    }; 
  
    script.onerror = function() { 
        error = true; 
        removeListeners(); 
        callback( false ); 
    } 
  
    function errorHandle( msg, url, line ) { 
  
        if ( url == src ) { 
            error = true; 
            removeListeners(); 
            callback( false ); 
        } 
        return false; 
    } 
  
    function removeListeners() { 
        script.onreadystatechange = script.onload = script.onerror = null; 
  
        if ( window.removeEventListener ) { 
            window.removeEventListener('error', errorHandle, false ); 
        } else { 
            window.detachEvent("onerror", errorHandle ); 
        } 
    } 
  
    if ( window.addEventListener ) { 
        window.addEventListener('error', errorHandle, false ); 
    } else { 
        window.attachEvent("onerror", errorHandle ); 
    } 
  
    script.src = src; 
    head.appendChild( script ); 
} 
  
  
loadScripts('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', function( status ){ 
    if ( status ) { 
        $(".results").html( "Ура! Скрипт готов к работе и мы можешь юзать его функции. Объект jQuery: " + jQuery );
    } 
});
</script>


Как видишь все работает, и все функции вызываются.


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