Я пытаюсь добавить скрипт из другого файла javascript, я следил за этим сообщением о неблокирующем сценарии асинхронного ввода. http://calendar.perfplanet.com/2012/the-non-blocking-script-loader-pattern Мне удалось загрузить внешний скрипт, но я не могу для создания экземпляра объекта во втором JS-файла, вот код:Javascript Asynchronous Загрузка js-файла и создание объекта объекта
(function(url, callback){
var dom,doc,where,iframe = document.createElement('iframe');
iframe.src = "javascript:false";
iframe.id = 'iframeTest';
(iframe.frameElement || iframe).style.cssText = "border: 0px; z- index: 50; position: fixed; height: 290px; width: 225px; right: 0px; bottom: 0px;";
where = document.getElementsByTagName('script');
where = where[where.length - 1];
where.parentNode.insertBefore(iframe, where);
try {
doc = iframe.contentWindow.document;
} catch(e) {
dom = document.domain;
iframe.src="javascript:var d=document.open();d.domain='"+dom+"';void(0);";
doc = iframe.contentWindow.document;
}
doc.open()._l = function() {
var head = document.getElementById('iframeTest').contentWindow.document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = callback;
head.appendChild(script);
}
doc.write('<body onload="document._l();">');
doc.close();
})
('http://localhost/js/chat.js', function() { var cb = new Chatbox('6'); cb.init();});
И в chat.js файл, который я пытаюсь нагрузка:
function Chatbox(orgId)
{
this.orgId = orgId;
}
Chatbox.prototype.constructor = Chatbox;
Chatbox.prototype.init = function() {
this.getStatus();
};
.....................................
при попытке загрузить страницу , Я в конечном итоге получаю сообщение об ошибке «Невстречу ReferenceError: Чатбокс не определен ». Я знаю, что здесь есть похожие вопросы, но не удалось найти решение для создания экземпляра объекта во втором файле, хотя оно работает, если оно не является асинхронным. Надеюсь, я ясно, и любая помощь будет высоко оценена. Заранее спасибо!
Код кажется прекрасным для меня. Вам, вероятно, не нужен 'Chatbox.prototype.constructor = Chatbox;'; Но это все равно не поможет)). Позвольте мне взглянуть на это –