FF2에서자바스크립트 안먹는거에 대한 대처방안

Mozilla Firefox 사용에 대한 일반적인 질문과 답을 해 주는 게시판입니다. 질문을 하기 전에 FAQ를 읽어 보시는게 도움이 될 것입니다.
댓글 게시
tomochan
게시물: 10
참여됨: 2006 10 20 11:07 44
연락:

FF2에서자바스크립트 안먹는거에 대한 대처방안

게시물 작성자 tomochan » 2006 11 08 15:58 07

비동기 웹방식으로 페이지를 꾸미고 있는데..
XMLHttpRequest놈을 ff2에서 먹지를 않네요...
익스는 잘되는데.....참..애먹고 있는데 대처할 코드나 방안 있나요?

알고계시면 한수 가르침을 선사 부탁드립니다...^^;;

유저 아바타
흑마법사
해커
해커
게시물: 465
참여됨: 2006 10 17 19:13 11
연락:

게시물 작성자 흑마법사 » 2006 11 08 16:08 01

전 그쪽에 대해선 완전 문외한입니다만... 약간의 코드를 올려주시는게 도움이 되지 않을까 싶네요. 암튼 XMLHttpRequest 자체는 파폭에서도 지원을 합니다.

XML.com의 글에 의하면

익스에서는

var req = new ActiveXObject("Microsoft.XMLHTTP");

이렇게 하는 것이 모질라/사파리에서는 그냥

var req = new XMLHttpRequest();

이렇게 선언해야 한다는군요. 코드를 모르는 상태에서 문외한이 추측 가능한 것은 이 정도입니다만... ㅠ.ㅠ

도움이 되려나... 흑흑

박민권
해커
해커
게시물: 724
참여됨: 2005 01 31 22:33 55
위치: 대한민국
연락:

샘플소스를...

게시물 작성자 박민권 » 2006 11 09 01:59 30

아래의 소스가 도움될거라 생각합니다.

코드: 모두 선택

function newXMLHttpRequest(){ //XMLHttpRequest 객체 생성 및 반환
	if(window.XMLHttpRequest){ //IE외 브라우저
		try{
			req = new XMLHttpRequest(); //XMLHttpRequest 객체 생성
		}
		catch(e){
			req = false; //생성실패
		}
	}
	else if(window.ActiveXObject){ //IE전용
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP"); //Msxml2.XMLHTTP 객체 생성
		}
		catch(e1){
			try { //Msxml2.XMLHTTP 객체 생성 실패시 옛버전 방식인 Microsoft.XMLHTTP를 생성
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e2){ //둘다 실패
				req = false;
			}
		}
	}

	return req;
}

tomochan
게시물: 10
참여됨: 2006 10 20 11:07 44
연락:

답변감사합니다.

게시물 작성자 tomochan » 2006 11 10 12:51 47

박민권님
예전 방식을 쓰는건 지금 저의 소스로서는 조금..많이 문제가 있지만..(저의 실력때문이랄까;;;)

그런 방식이 있었군요...

파폭도 조금 더 지원했으면 좋겠다는 생각을 하면서.....

답변 두분다 감사드립니다.

흑마법사님
var req = new XMLHttpRequest();
역시 생성을 못시킨다는점 참..안타까워요 ㅠㅠ
제가 asp.net2.0으로 개발을 해서인지..파폭에서 안되는 부분이 넘 많으네요 ㅠㅠ

유저 아바타
흑마법사
해커
해커
게시물: 465
참여됨: 2006 10 17 19:13 11
연락:

게시물 작성자 흑마법사 » 2006 11 10 13:21 57

흐음... 이건 질문입니다만... 전에 답글 올릴때 읽은 글에서 받은 늬앙스는 익스랑 타 브라우저는 선언 방법 자체가 다르다는 거였거든요. 모든 브라우저에서 한방에 해결하는 방법이 가능하긴 한가요?

제가 생각하기엔 결국 민원님이 올려주신 소스랑 유사한 형태를 띄게 될거 같은데...

해결 방안 찾으시면 꼭 올려 주세요. ^^

tomochan
게시물: 10
참여됨: 2006 10 20 11:07 44
연락:

문제가 이게 아니었나봅니다...^^;;

게시물 작성자 tomochan » 2006 11 10 14:00 47

민원님 소스대로 테스트를 해본결과
제가 가지고 있는 웹브라는 IE모듈이거나 FF2이기땜시 이것밖에 테스트를 못해보았지만

일단 IE6일경우
소스를 보시면 alert가
3이 뜹니다.
그리고 서버측에서 주는 인자값은 true라는 값인데 잘 받아서 true라는 메세지가 뜨네요

하지만 FF2일 경우
1을 타고 아주 잘 생성하네요;;
그렇지만 서버값을 받는 ResponseText를 못돌리는 것인지
받지를 않습니다.

좀 다른 포럼을 돌아다녀도 제 눈에는 보이지 않으네요..
알고계신분 계신가요?

function newXMLHttpRequest()
{
var req;
//XMLHttpRequest 객체 생성 및 반환
if(window.XMLHttpRequest)
{ //IE외 브라우저
try
{
req = new XMLHttpRequest(); //XMLHttpRequest 객체 생성
alert('1');
}
catch(e)
{
//생성실패
alert('2');
}
}
else if(window.ActiveXObject)
{ //IE전용
try
{
req = new ActiveXObject("Msxml2.XMLHTTP"); //Msxml2.XMLHTTP 객체 생성
alert('3');
}
catch(e1)
{
try
{ //Msxml2.XMLHTTP 객체 생성 실패시 옛버전 방식인 Microsoft.XMLHTTP를 생성
req = new ActiveXObject("Microsoft.XMLHTTP");
alert('4');
}
catch(e2)
{ //둘다 실패
alert('5');
}
}
}
var Url = "test2.aspx?test=1";
req.open("POST", Url, false);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(null);
var name = req.ResponseText;
if (name =="true")
{
alert(name);
}
else
{
alert(name);
}

}

빛알갱이
해커
해커
게시물: 1146
참여됨: 2004 01 15 20:06 36

Re: 답변감사합니다.

게시물 작성자 빛알갱이 » 2006 11 10 16:08 33

tomochan 씀: 파폭도 조금 더 지원했으면 좋겠다는 생각을 하면서.....
무슨 말씀이신지? Windows가 아닌 플랫폼에서 돌아가는 브라우저들이 XMLHttpRequest를 지원하기 위해 ActiveX object를 부르는 방식을 써야 한다는 얘기는 아니시겠지요? :-)

이 글타래의 다른 부분에 물으신 질문 : 서버에서 온 응답이 FF에서 안 보이는 이유는 responseText라고 하셔야 할 자리에 ResponseText라고 하셨기 때문입니다. 'R'이 아니라 'r'입니다.

tomochan
게시물: 10
참여됨: 2006 10 20 11:07 44
연락:

앗;;;;

게시물 작성자 tomochan » 2006 11 10 17:34 50

빛알갱이님 감사합니다...저의 대소문자의 무지함이 이런실수를;;;
지금까지 IE를 위한 개발만 하다보니..대소문자에 신경을 안쓰게 되서요;;
아주 잘되네요...위의 그 스크립트는....그냥 테스트를 위해 대충대충;;;;;ㅎㅎㅎㅎㅎ
감사합니다...또 하나 배우게 되네요 ^^

박민권
해커
해커
게시물: 724
참여됨: 2005 01 31 22:33 55
위치: 대한민국
연락:

게시물 작성자 박민권 » 2006 11 12 17:03 32

흑마법사님 제 이름은 민원이 아닙니다. ㅠㅠ

댓글 게시

누군가 접속

유저들이 이 포럼을 탐색중: 가입된 유저 없음 그리고 3 손님들