게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

re: 오류중에여
작성자: 송원석
작성일시: 2003-07-17 13:44,  조회수: 3,812
말씀하신 오류는 href 인자에 어떤 URL 이 들어가느냐에 따라 오류가 발생할 수도 있고 또는 오류가 발생하지 않을 수도 있는 것 같습니다. 먼저 해당 함수를 분석해 보도록 하죠... ^_^
function URI(href)
{
    IEVer = window.navigator.appVersion;
    IEVer = IEVer.substr( IEVer.indexOf('MSIE') + 5, 3 );

    return (IEVer.charAt(1)=='.' && IEVer >= '5.5') ?
               encodeURI(href) :
               escape(href).replace(/%3A/g, ':').replace(/%3B/g, ';');
}
이 함수는 한 마디로 말해서 클라이언트 자바스크립트에서 사용하기 위한 URL Encoding 함수입니다.

일반적으로 자바스크립트에서 URL 을 인코딩하기 위해서는 지금까지 escape() 메소드를 많이 사용해 왔습니다. 그러나 많은 분들이 모르시고 계시는 점이 있는데, 마이크로소프트의 문서에서는 escape() 메소드는 URI 인코딩에 사용할 수 없으므로 권장하지 않는다고 밝히고 있다는 점입니다.

그대신 encodeURI() 및 encodeURIComponent() 메서드를 권장하고 있는데 문제는 이 두 함수는 IE 5.5 이상의 버전에서만 지원이 된다는 것이죠. ^_^;;;

따라서 위의 함수에서는 먼저 IEVer = window.navigator.appVersion; 구문을 이용해서 브라우저의 버전을 알아낸 다음, 버전에 따라 encodeURI(href) 구문이나 escape(href).replace(/%3A/g, ':').replace(/%3B/g, ';') 중의 하나를 실행시키고 그 결과를 리턴해주는 것입니다.

즉 5.5 보다 브라우저 버전이 높다면 encodeURI(href) 구문을 사용하고 그렇지 않다면 escape() 메소드를 사용한 구문을 호출하죠. 그런데 escape() 메소드는 : 와 ; 까지 인코딩 처리해 버리므로 정규 표현식 replace() 메소드를 사용해서 두 문자를 원래대로 돌려주는 것입니다.

결론적으로 제가 보기에는 코드 자체에는 문제가 없는 것 같고, href 인자에 어떤 URL 이 들어가느냐에 따라 상황별로 오류가 발생하는 것 같습니다. 중간 중간에 alert() 을 사용해서 IEVer 변수와 IEVer.charAt(1) 가 어던 값을 리턴하는지 등등을 점검해 보시면 금새 원인을 찾으실 수 있을 것입니다. ^_^
그런데 저런 코드가 제 사이트에 있었나요? 아무리 생각해봐도 저런 코드는 사용한 적이 없는데요. ^_^;;;
감사합니다.
IP 주소: 210.118.108.254
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 83 페이지입니다.
게시물
55

Dext Upload 컴포넌트 버젼이 몇인지요? [2]

GraY

2003-08-21 5,592
54

re: Dext Upload 컴포넌트 버젼이 몇인지요?

송원석

2003-08-21 3,765
53

오류에 관한 몇가지 추가해서 씁니다.^^ [2]

김은성

2003-08-19 1,376
52

re: 오류에 관한 몇가지 추가해서 씁니다.^^ [5]

송원석

2003-08-19 3,678
51

오류의 몇가지

김은성

2003-08-18 3,205
50

re: 오류의 몇가지

송원석

2003-08-18 3,206
49

정말대단하군요..근데 궁금한게...

성군이

2003-07-31 1,276
48

re: 정말대단하군요..근데 궁금한게...

송원석

2003-07-31 3,424
47

진짜 대단하시네요... & ps..

큰머리

2003-07-30 3,575
46

re: 진짜 대단하시네요... & ps.. [2]

송원석

2003-07-30 3,234
45

폴더명 삭제시 오류에 대해... [1]

제이딘

2003-07-30 3,822
44

우훗~ 이런이런... 선수를 치다니.. ㅋㅋ [1]

황윤상

2003-07-26 3,660
43

[질문] 다음버젼으 FileFube의 추가기능은?

황윤상

2003-07-26 3,735
42

re: [질문] 다음버젼으 FileFube의 추가기능은?

송원석

2003-07-26 3,639
41

오류중에여

궁금이

2003-07-17 1,524

re: 오류중에여

송원석

2003-07-17 3,812
39

업로드도 가능하게 해주세요.

궁금이

2003-07-17 1,245
38

re: 업로드도 가능하게 해주세요.

송원석

2003-07-17 3,427
37

[공지] FileCube 버전 0.0.4 를 다운로드 받으실 수 있습니다.

송원석

2003-07-13 3,737
36

filecube 문의

가가멜

2003-07-02 3,513
35

re: filecube 문의

송원석

2003-07-02 3,491
34

re: 폴더명 순으로 보여주세요...

착한아빠

2003-07-09 3,457
33

re: 폴더명 순으로 보여주세요... [1]

송원석

2003-07-09 3,578
32

또 질물을... ^^;

ㅜ.ㅜ

2003-06-24 4,105
31

re: 또 질물을... ^^;

송원석

2003-06-24 4,015