0
Я хочу загрузить html-файл с помощью ajax и выполнить скрипт. это мой HTML-файл для загрузки:чистый js load html и js с помощью ajax, но js не работает
<div class="panel panel-body">
<h4>Personal Data</h4>
<hr />
<span data-bind="editable: firstName"></span>
<span data-bind="text: firstName"></span>
</div>
<script>
(function() {
console.log('lala');
var viewModel = function() {
var self = this;
self.id = ko.observable();
self.firstName = ko.observable('YZ');
self.lastName = ko.observable();
self.gender = ko.observable();
self.genders = ko.observableArray();
}
var vm = new viewModel();
ko.applyBindings(vm);
})
</script>
и это, как я загрузить и выполнить:
Mark.load(t.pathToTemplate, t, function (htmlTemplate, path, option) {
var wrap = document.createElement('div');
wrap.innerHTML = htmlTemplate;
var scripts = wrap.getElementsByTagName('script');
if (scripts.length > 0) {
var newjs = document.createElement('script');
newjs.onreadystatechange = function() {
if (newjs.readyState === 'loaded' || newjs.readyState === 'complete') {
cb();
}
};
newjs.onload = function() {
cb();
};
newjs.innerHTML = scripts[0].innerHTML;
document.body.appendChild(newjs);
}
document.getElementById(option.renderIn).innerHTML = htmlTemplate;
});
Mark.load = function (path, option, callback) {
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', path, true);
xobj.onreadystatechange = function() {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText, path, option);
}
};
xobj.send(null);
}
нагрузки и правильно добавить работу, но JS не выполняется. Как добавить или добавить этот скрипт js для документирования и выполнения его с помощью чистых js?
благодаря это работает для console.log(), но knockoutjs применять привязки не работает, я имею в виду это выглядит как ko.applyBindings (VM); не выполняются или не применяются. fyi я обновляю свой код – yozawiratama