Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Использование глобальной переменной (https://javascript.ru/forum/misc/76355-ispolzovanie-globalnojj-peremennojj.html)

salieri 03.01.2019 13:27

Использование глобальной переменной
 
Здравствуйте! Подскажите, пожалуйста, как мне использовать глобальную переменную sStat в
link.onload = function() {sStat=1;}


var sStat=0;

function one(){

var link = document.createElement("script");
link.id = "js_3";
link.type = "text/javascript";
link.src = "3.js";

link.onload = function() {sStat=1;}
link.onerror = function() {sStat=0;}

var head = document.getElementsByTagName("head")[0];
head.appendChild(link);

}

window.onload = function() {
one();
alert(sStat); //выводится 0 почему-то
}


можно ли как-то влиять на глобальную переменную sStat?

j0hnik 03.01.2019 13:37

зачем столько много букв?
function one(){
sStat=1;
}

salieri 03.01.2019 15:08

j0hnik,
так смысл-то в том, чтобы определить, загрузился скрипт 3.js или нет
если да, то 1, если нет, то 0

Malleys 03.01.2019 16:11

Цитата:

Сообщение от salieri
смысл-то в том, чтобы определить, загрузился скрипт 3.js или нет

<script>

const loadScript = url => new Promise((resolve, reject) => {
	var script = document.createElement("script");
	script.src = url;

	script.onload = resolve;
	script.onerror = reject;
	
	document.head.appendChild(script);
});
	
loadScript("data:text/javascript,var x = 5;").then(() => {
	alert("OK");
}).catch(() => {
	alert("Not OK");
});
	
</script>


Загрузка скрипта является асинхронной операцией, поэтому вы не можете синхронно получить на этот вопрос ответ. В примере выше я вывожу сообщение в зависимости от успеха загрузки. Вы соответственно можете там применять то, что нужно.

salieri 05.01.2019 21:08

спасибо!


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