Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2010, 14:24
Новичок на форуме
Отправить личное сообщение для PheonixS Посмотреть профиль Найти все сообщения от PheonixS
 
Регистрация: 19.06.2010
Сообщений: 6

Как вызвать функцию из функции ?
Из функции contentLoader необходимо вызвать ф-ию loadXMLDoc с параметрами. Как это сделать ?
net = {};

net.contentLoader = function (url, method){
	this.xmlHttp = null;
	this.url = url;
	this.method = method;
	
	this.error_reporting = true;
	this.loadXMLDoc.call(this, url, method);//есть null или не является объектом 
}
net.contentLoader.prototype = {
	
	loadXMLDoc:function(url, method){
		
		try{
			this.xmlHttp = new XMLHttpRequest();		
		}catch(e){
			var xmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
									 		"MSXML2.XMLHTTP.5.0",
											"MSXML2.XMLHTTP.4.0",
											"MSXML2.XMLHTTP.3.0",
											"MSXML2.XMLHTTP",
											"Microsoft.XMLHTTP");
			for(var i=0;i < XMLHttpVersions.length;i++){
				try{
					this.xmlHttp = new ActiveXObject(XMLHttpVersions[i]);
				}catch(e){}
			}
		}
		
		if(!this.xmlHttp && this.error_reporting)alert("Variable xmlHttp not set !");
		else if(!this.xmlHttp)return;
		
		if(this.xmlHttp){
			this.xmlHttp.open(method, url, true);
			this.xmlHttp.onreadystatechange = function (){
				if(this.xmlHttp && (this.xmlHttp.readyState == 4 || this.xmlHttp.readyState == 0)){
					document.getElementById("kill").innerHTML = this.xmlHttp.responseText;
				}
			}
			this.xmlHttp.send(null);
		}
	}
	
}

window.onload = function (){
	net.contentLoader("http://localhost/newphp/a.txt", "GET");
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2010, 14:38
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

При вызове net.contentLoader("http://localhost/newphp/a.txt", "GET"); контекст вызова this внутри contentLoader указывает на net.

Вы наверное забыли new написать перед net.contentLoader(…).

Ну и call там не нужен:
this.loadXMLDoc(url, method);
если в конструкторе вызывать.
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2010, 14:45
Новичок на форуме
Отправить личное сообщение для PheonixS Посмотреть профиль Найти все сообщения от PheonixS
 
Регистрация: 19.06.2010
Сообщений: 6

уточните пожалуйста что нужно исправить
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2010, 14:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

А что вам непонятно?
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2010, 15:05
Новичок на форуме
Отправить личное сообщение для PheonixS Посмотреть профиль Найти все сообщения от PheonixS
 
Регистрация: 19.06.2010
Сообщений: 6

Нужно исправить на это ?
net = {};

net.contentLoader = function (url, method){
	this.xmlHttp = null;
	this.url = url;
	this.method = method;
	
	this.error_reporting = true;
	this.loadXMLDoc(url, method);
}
net.contentLoader.prototype = {
	
	loadXMLDoc:function(url, method){
		
		try{
			this.xmlHttp = new XMLHttpRequest();
				
		}catch(e){
			var xmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
									 		"MSXML2.XMLHTTP.5.0",
											"MSXML2.XMLHTTP.4.0",
											"MSXML2.XMLHTTP.3.0",
											"MSXML2.XMLHTTP",
											"Microsoft.XMLHTTP");
			for(var i=0;i < XMLHttpVersions.length;i++){
				try{
					this.xmlHttp = new ActiveXObject(XMLHttpVersions[i]);
				}catch(e){}
			}
		}
		
		if(!this.xmlHttp && this.error_reporting)alert("Variable xmlHttp not set !");
		else if(!this.xmlHttp)return;
		
		if(this.xmlHttp){
			try{
				this.xmlHttp.open(method, url, true);
				this.xmlHttp.onreadystatechange = function (){
					if(this.xmlHttp && this.xmlHttp.readyState == 4){
						document.getElementById("kill").innerHTML = this.xmlHttp.responseText;
					}
				}
				this.xmlHttp.send(null);
			}catch(e){
				this.onError.call(e.toString());	
			}
		}
	},
	
	onError:function(e){
		if(this.error_reporting){
			alert(	"ERROR\n\n"+
					"String: " + e + 
					"Headers: " + this.xmlHttp.getAllResponseHeaders() + 
					"readystate: " + this.xmlHttp.readyState);	
		}
	}
	
}

window.onload = function (){
	new net.contentLoader("http://localhost/newphp/a.txt", "GET");
}

Только всёравно не работает
Ответить с цитированием
  #6 (permalink)  
Старый 20.06.2010, 09:47
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от PheonixS
Только всёравно не работает
Телепатов нет. Что не работает, какие ошибки выдает?
Ответить с цитированием
  #7 (permalink)  
Старый 20.06.2010, 09:49
Новичок на форуме
Отправить личное сообщение для PheonixS Посмотреть профиль Найти все сообщения от PheonixS
 
Регистрация: 19.06.2010
Сообщений: 6

ошибок нет, результата в диве тоже не наблюдается
Ответить с цитированием
  #8 (permalink)  
Старый 20.06.2010, 09:51
Новичок на форуме
Отправить личное сообщение для PheonixS Посмотреть профиль Найти все сообщения от PheonixS
 
Регистрация: 19.06.2010
Сообщений: 6

всё, разобрался, спасибо за помощь тему можно клосед
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Как из userjs FF вызвать функцию из внешнего файла ? pods Общие вопросы Javascript 1 07.01.2010 21:36
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02
как вызвать функцию? pumpurumer jQuery 2 27.08.2009 19:39
Как вызвать функцию если менять надо не все параметры? britanik Общие вопросы Javascript 3 07.03.2009 23:13