게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: 오류중에여 |
---|
작성자: 송원석
작성일시: 2003-07-17 13:44,
조회수: 4,004
|
말씀하신 오류는 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 | 2003-08-21 | 6,008 | ||
54 | 2003-08-21 | 3,971 | ||
53 |
김은성 |
2003-08-19 | 1,376 | |
52 | 2003-08-19 | 3,915 | ||
51 | 2003-08-18 | 3,413 | ||
50 | 2003-08-18 | 3,402 | ||
49 |
성군이 |
2003-07-31 | 1,276 | |
48 | 2003-07-31 | 3,610 | ||
47 | 2003-07-30 | 3,766 | ||
46 | 2003-07-30 | 3,436 | ||
45 | 2003-07-30 | 4,015 | ||
44 | 2003-07-26 | 3,863 | ||
43 | 2003-07-26 | 3,917 | ||
42 | 2003-07-26 | 3,838 | ||
41 |
궁금이 |
2003-07-17 | 1,524 | |
2003-07-17 | 4,004 | |||
39 |
궁금이 |
2003-07-17 | 1,245 | |
38 | 2003-07-17 | 3,618 | ||
37 | 2003-07-13 | 3,952 | ||
36 | 2003-07-02 | 3,723 | ||
35 | 2003-07-02 | 3,690 | ||
34 | 2003-07-09 | 3,645 | ||
33 | 2003-07-09 | 3,768 | ||
32 | 2003-06-24 | 4,319 | ||
31 | 2003-06-24 | 4,204 |