Я знаю, что тема «включая файл javascript в другой файл javascript» обсуждалась много. Но мой сценарий несколько отличается, поэтому я не смог найти ответ, соответствующий моей проблеме.jQuery: getScript для включения Javascript в Javascript
Давайте предположим, что есть три файла: test.html, starter.js и object.js
test.html просто включает starter.js с помощью JQuery:
<html>
<head>
<script src="js/starter.js"></script>
</head>
<body>
<script src="jquery/jquery-1.9.1.js"></script>
<script>
$(document).ready(function() {
$.getScript("js/starter.js", loadobject());
alert("a");
});
</script>
</body>
</html>
starter.js содержит функцию с $.getScript
включить object.js и выглядит следующим образом:
function loadobject() {
alert("b");
$.getScript("object.js", function(){
Object.init();
alert("c");
});
}
Наконец object.js содержит объект, как следующее:
var Object = {
init: function() {
// . . .
},
searchString: function (data) {
// . . .
}
};
Object.init();
Насколько я вижу, когда вызывается test.html в браузере, он должен включать starter.js, как только документ будет готов. Кроме того, starter.js должен загружать object.js при вызове. Но это кажется неудачным, поскольку строка alert("object loaded");
никогда не выполняется. Я также много проб и ошибок, например, заменил строку в starter.js $.getScript("object.js", function(){
на $.getScript("object.js", init(){
, но мне не удалось найти решение - хотя это может быть просто. :(
Как я могу это исправить и включить файл JS, содержащий объект правильно? Кроме того, как может новый Object
быть инициализирован и доступ в starter.js?
Я думаю, что я испортил с function()
, но на самом деле я понятия не имею, о том, что и оценить любой намек.
Спасибо!
ли это преднамеренным, что вы в том числе ' стартер.js' дважды? Один раз через тег HTML 'script', один раз через' getScript() '. Какова ваша цель сделать все это? Я не вижу смысла. – kapa
Если я не использую тег 'script', функция' getScript() 'генерирует ошибку, говорящую, что переменная' loadobject' не определена. С тегом 'script' эта ошибка не возникает. – coroner
В этом случае вам не нужен 'getScript()'. Просто выполните 'loadobject()' вместо '$ .getScript (" js/starter.js ", loadobject());'. В это время стартер уже загружен. – kapa