Яваскрипты, внедрённые в тело страницы после её загрузки, не исполняются. При попытке вызвать функцию из такого скрипта пишет «функция не определена».
Есть ли способ заставить видеть внедрённый скрипт и пользоваться функциями из него для функций, загруженных обычным способом?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<title>Test</title>
<script>
function loadHtmlParts() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'common.htm', true);
xhr.onreadystatechange = function() {
if (this.readyState !== 4) {return};
if (this.status !== 200) {return};
var htm = document.createElement("html");
htm.innerHTML = this.responseText;
document.getElementById('script-place').innerHTML = htm.getElementsByClassName("script-load")[0].innerHTML;
};
xhr.send();
}
function start() {
loadHtmlParts();
myFunk(); // Not work !!!
}
</script>
</head>
<body onload="start();">
<div id="script-place"></div>
<div>
<!-- html code -->
</div>
</body>
</html>
Функция myFunk() находится в файле common.htm в составе скрипта с многими другими функциями.
Когда я вручную вставляю этот скрипт на место
<div id="script-place"></div>
всё работает, когда это вставляет загрузчик (в то же место, только автоматически), myFunk() уже не работает.
------
Вопрос не решён, я получил множество ответов и ни один не заработал так, как нужно. Видимо дело в каком-то неучитываемом мной факторе. Я попробую разобраться и, если найду решение, отпишусь здесь. Всем ответившим большое спасибо! Больше ответов добавлять не нужно.