게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
re: IE Analysis 에 대한 질문입니다. |
---|
작성자: 송원석
작성일시: 2005-04-10 23:56,
조회수: 3,255
|
먼저 강조드리고 싶은 것은 인터넷 익프플로러 내장 개체와 자바스크립트를 별개의 것으로 생각하시는 것이 이해가 쉬우실 것이라는 점입니다. 다만 저희들이 흔하게 접하게 되는 환경이, 즉 거의 90% 가 넘는 경우의 확율로 인터넷 익스플로러 내장 개체와 자바스크립트를 같이 사용하는 경우가 일반적이기 때문에 양자간의 경계가 명확하게 인식되는 편은 아닙니다. 그러나 엄밀하게 말씀드리자면 인터넷 익스플로러 내장 개체는 COM 을 기반으로하는 별개의 개체 집합들이고, 자바스크립트는 또 다른 그 나름대로 별개의 언어일 뿐인 것입니다. 즉 우리가 평소에 웹 프로그래밍을 하면서 '자바스크립트 프로그램 작성' 을 한다고 생각해왔던 작업들도 사실은 자바스크립트로 일련의 COM 개체들을 제어하는 일반적인 프로그래밍 작업이었던 셈이죠. 자바스크립트 문법 자체에는 그 어디에도 innerHTML 프로퍼티라던가 getElementById() 메소드와 같은 요소들이 존재하지 않는다는 점을 상기해보시기 바랍니다. 따라서 결론적으로 인터넷 익스플로러 내장 개체 그 자체는 사용하는 언어가 자바스크립트이던 비주얼 베이직 6.0 이던, C# 또는 비주얼 베이직 .NET 이던간에 전혀 구분지을 필요가 없다는 것이죠. ^_^
따라서 이벤트와 관련된 질문은 이렇게 답변드리겠습니다. 말씀하신 것처럼 응용 프로그램 수준에서 이벤트를 잡아내는 것도 가능합니다. 자바스크립트에서는 저희들이 흔히 사용하던 방법을 사용하면 되구요, 비주얼 베이직 6.0 같은 경우에는 언제나처럼 WithEvents 키워드를 사용하게 됩니다. 즉 HTMLDocument 형의 개체 변수를 WithEvents 키워드를 사용하여 임의의 이름으로 선언하고 WebBrowser 개체의 Document 프로퍼티로부터 참조를 얻는 것만으로도 대부분의 이벤트를 받으실 수 있습니다. .NET 언어에서도 비슷합니다. 다만 인터롭이 중간에 끼어들 뿐이겠죠. 물론 이벤트 자체를 선언하는 방법, 이벤트 헨들러를 선언하는 방법은 각각의 언어들마다 차이가 있겠지만 언어와는 무관하게 내장 개체들은 단지 내장 개체들일 뿐이므로 근본적으로 바뀌는 것은 없습니다. 그러나 이 경우에도 실제로 어떤 태그에서 해당 이벤트가 발생했는지를 알아보기 위해서는 자바스크립트에서와 마찮가지로 event.srcElement 프로퍼티를 사용할 수 있습니다. 다시 한 번 말씀드리지만 이 개체 프로퍼티는 자바스크립트에서 제공되는 것이 아니라 인터넷 익스플로러의 내장 개체로부터 제공되는 것이니까요. 개체를 새로 생성하여 추가하는 문제도 역시 마찮가지입니다. 예를 들어서 가장 흔한 사례로 자바스크립트를 사용하여 SELECT 개체에 OPTION 개체들을 동적으로 생성하는 코드를 보거나 아니면 직접 작성해본 경험이 있으실 것입니다. 그런데 그 때 사용되는 코드들의 상당 부분들 역시 자바스크립트의 함수나 개체가 아니라 인터넷 익스플로러 내장 개체에서 제공되는 것들입니다. 따라서 동일한 작업을 하는 코드를 비주얼 베이직 6.0 으로 작성하신다고 가정한다고 해도 거의 동일한 구문이 나오게 됩니다. 바뀌어봤자 배열의 괄호가 꺽쇠로 바뀌고 For 문과 같은 기본적인 제어문 정도가 언어의 특성을 따라가게 될 뿐입니다. C# 으로 작성하는 경우에는 아마도 언어의 특성상 자바스크립트의 코드와 더욱 비슷한 코드가 나오겠지요. 그러나 이벤트 헨들러를 정의하는 부분은 다음의 코드와 같이 C# 고유의 코드가 나오게 됩니다. ^_^ ((mshtml.HTMLButtonElementEvents_Event)btn).onclick += new mshtml.HTMLButtonElementEvents_onclickEventHandler(Form1_onclick);저 역시도 본격적인 응용 프로그래머는 아닙니다. 거의 마이크로소프트사의 IIS 를 기반으로한 웹 프로그래밍 작업을 주 업무로하는 지극히 평범한 웹 프로그래머일 뿐이죠. 그래서 이보다 더욱 심도 깊은 설명을 드리기에는 역량이 부족하구요. 이 정도로 대략적인 설명만 드리는 것으로 마무리를 하도록 하겠습니다. 코드프로젝트 사이트나 기타 사이트들을 검색해보시면 그리 어렵지 않게 사용하시는 프로그래밍 언어에 대한 해당 샘플 코드들을 찾아보실 수 있으므로 권해드립니다. 감사합니다. |
IP 주소: 211.222.23.203
|
구나구나 |
감사합니다 ^-----^
|
2005-04-11 09:26 |
게시물 | ||||
---|---|---|---|---|
1,103 | 2005-05-02 | 5,137 | ||
1,102 | 2005-05-02 | 2,828 | ||
1,101 | 2005-05-02 | 3,236 | ||
1,100 | 2005-05-03 | 3,035 | ||
1,099 |
조언을 듣고 싶습니다. [1] |
궁금이 |
2005-04-29 | 843 |
1,098 |
오마르 |
2005-04-28 | 850 | |
1,097 | 2005-04-28 | 2,870 | ||
1,096 | 2005-04-13 | 3,209 | ||
1,095 | 2005-04-13 | 3,171 | ||
1,094 | 2005-04-12 | 2,702 | ||
1,093 | 2005-04-12 | 2,860 | ||
1,092 | 2005-04-11 | 2,857 | ||
1,091 | 2005-04-10 | 2,880 | ||
1,090 | 2005-04-11 | 3,100 | ||
1,089 | 2005-05-02 | 2,974 | ||
1,088 | 2005-04-10 | 2,808 | ||
2005-04-10 | 3,255 | |||
1,086 |
IIS가 이상합니다. [4] |
2005-04-08 | 5,188 | |
1,085 |
오마르 |
2005-04-08 | 1,061 | |
1,084 |
re: 타겟 지정?? [1] |
2005-04-08 | 2,730 | |
1,083 |
김재필 |
2005-04-06 | 897 | |
1,082 | 2005-04-07 | 2,860 | ||
1,081 |
주말 잘 보내세요. [1] |
정보문 |
2005-04-02 | 875 |
1,080 |
조보영 |
2005-03-31 | 850 | |
1,079 | 2005-03-31 | 2,765 |