onload는 페이지가 다 읽혀진뒤에 불리워지는 핸들러이고
onresize는 페이지 크기 조절시
onblur는 특정 컨트롤의 포커스를 잃을시 발동되는(?) 핸들러라고 한다.

onafterprint
onbeforeprint
onbeforeunload
onblur
onerror
onfocus
onhashchange
onhelp
onload
onmessage
onresize
onscroll
onunload

2010/07/20 - [Programming/Javascript] - javascript 객체출력

[링크 : http://koxo.com/lang/js/event/jsList.html]
    [링크 : http://koxo.com/lang/js/event/onblur.html]
Posted by 구차니
자바 스크립트 관련 책을 보다보니
innerHTML은 브라우저 별로 지원은 하지만, 웹 표준은 아니므로 DOM 관련 함수를 쓰라고 추천하고 있다.
하지만 막상 검색을 해보니, 성능측면에서 DOM 보다는 innerHTML을 추천하는 내용들이 많이 나온다.

아무튼,
"대규모로 조작을 해야 한다면 innerHTML에 한번에 업데이트 하는 것도 고려할만 하다.
하지만 내용이 많지 않을경우에는 DOM을 하는것이 좋다."
라는 것이 결론.

[링크 : http://forums.mozilla.or.kr/viewtopic.php?p=32382]
[링크 : http://firejune.com/976&stag=innerHTML]
[링크 : http://trend21c.tistory.com/929]
Posted by 구차니
getElementaryByTagName() 함수를 사용하면 HTML DOM 에서 특정 tag에 대해서 받아올수 있다.
그리고 이 함수는 NodeList 를 돌려준다.
NodeList는 Node의 배열도 아니고 먼가 희한한 방법으로 접근을 한다.

x = document.getElementsByTagName("td");
document.write(x.item(i).nodeName);

이렇게 하면 TD 태그로 받아왔으므로, nodeName은 TD가 리턴된다.
한글2010 에서 작성한 표는 <P> 태그로 쌓여 있는데 그런 이유로 NULL 값이 나오는것으로 생각된다.


Posted by 구차니
가장 많이 쓰이는 녀석같은데 은근히 쓰기가 까다롭다 ㄱ-

Syntax
window.open(URL,name,specs,replace)

[링크 : http://www.w3schools.com/jsref/met_win_open.asp]
위에 이름은 그냥 이름이고, 새로열린 창 내에서의 식별 번호이다.
즉, parent 가 되는 쪽에서는 name 으로 제어를 할수없다.

Wremote = window.open('', 'YourRemote', szoptions);
if(Wremote != null)
{
  if(Wremote.opener == null)
  {
    Wremote.opener = self;
  };
  Wremote.location.href = 'example6-remote.htm';
};

[링크 : http://www.chipchapin.com/WebTools/JavaScript/index.html]
    [링크 : http://www.chipchapin.com/WebTools/JavaScript/example2-01.html]

만약에 제어를 해야 한다면,
위와 같이 창이름을 변수로 주고 windows.open() 메소드의 return 값을 저장하면 된다.


Definition and Usage

The opener property returns a reference to the window that created the window.
When opening a window with window.open(), you can use this property from the destination window to return details of the source (parent) window.
Coding Tip: window.opener.close() will close the source (parent) window.

[링크 : http://www.w3schools.com/jsref/prop_win_opener.asp]
이 값이 parent 윈도우의 값을 지정해주는 것으로 생각된다.
Posted by 구차니

최상위객체는 window 하나뿐이고, 그 아래에 파생되는 객체들이 존재한다.
하지만 최상위객체 지칭인 "window."를 생략하고 사용하므로 얼핏보기에는
총 6개의 최상위객체가 있는 것으로 생각될수도 있다.

Browser Objects Reference

The references describe the properties and methods of each object, along with examples.


[링크 : http://www.w3schools.com/jsref/default.asp]

Window Object Properties

Property Description
document Returns the Document object for the window (See Document object)
history Returns the History object for the window (See History object)
location Returns the Location object for the window (See Location object)
navigator Returns the Navigator object for the window (See Navigator object)
screen Returns the Screen object for the window (See Screen object)

[링크 : http://www.w3schools.com/jsref/obj_window.asp]


Posted by 구차니
document.keydown 이라는 녀석에 등록을 하면
이벤트 핸들러로 등록이 되어 후킹을 하는 것으로 보인다.

function processShortcut(event) {
            if (isIE)
        {
            event = window.event;
            event.target = event.srcElement;
        }
   
        if (event.altKey || event.ctrlKey)
            return;
        switch (event.target.nodeName) {
            case "INPUT":
            case "SELECT":
            case "TEXTAREA":
                return;
        }
        switch (event.keyCode) {
            case 81: //Q

                window.location = "/admin";
                break;
            case 83: //S
                window.location = "?page=2";
                break;
            case 90: //Z
                window.location = "#recentEntries";
                break;
            case 88: //X
                window.location = "#recentComments";
                break;
            case 67: //C
                window.location = "#recentTrackback";
                break;
        }
    }
    document.onkeydown = processShortcut;



2010.07.27 추가
테스트를 해보니 무조건 대문자로 받아들이고, 'Q' 나 'q' 이런식의 값은 인식을 못하는 것으로 보인다.
괜히 위에 case 81: 이런식으로 한게 아니구나 ㅠ.ㅠ
Posted by 구차니
자바스크립트를 공부하면서 가장 헷갈리고 있는 부분이 바로 'var' 키워드이다.
어디서는
 var 변수=값;
라고 선언하고, 어디서는
 변수=값;
이라고만 선언하는데, C언어적인 관점에서는 도무지 있을수 없는 녀석이라 혼돈을 더해주고만 있어서
검색을 해보지만 이렇다 할 레퍼런스를 찾지는 못했다.

간략하게만 정리하자면
1. var 를 붙이지 않으면 자동으로 "전역변수"로 선언되며
   var 를 붙이지 않은 변수는 window 오브젝트(혹은 컨텍스트?)에 선언된다.
2. javascript 는 dynamic scope 이기 때문에 함수에서 변수를 사용시에는
  함수가 어디에 선언되었냐 보다는, 어디에서 함수가 불려지냐는 "문맥(context)"가 중요해 진다고 한다.
3. 그리고 var로 선언한 변수는 delete 키워드로 메모리를 해제할수 없다.

아무튼 ECMA 표준을 보던가 해서 명확하게 좀 찾아볼 필요가 있어 보인다.


[링크 : https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Functions]
Posted by 구차니
2010/07/23 - [Programming/Javascript] - javascript / XML - XMLHttpRequest

XML이 파일을 기술하는 형태등이라면 DOM은 그러한 데이터를 조작하는 방법을 의미한다.
DOM은 XML 파일에 대해서도 사용이 가능하고
HTML 파일에 대해서도 tree 구조로 navigation이 가능하다.

그러고 보니.. 이녀석을 이용하면 예전에 완전 생 노가다로 했던
웹에서 특정 셀의 자료들만 긁어오기를 자동화 시킬수 있을 것으로 보인다.
(satcodx.com 에서 주파수/심볼/polarization 을 자동으로 긁어오기 라던가?)

[링크 : http://www.w3.org/TR/#tr_DOM]
    [링크 : http://www.w3.org/TR/DOM-Level-2-Core/core.html]
[링크 : https://developer.mozilla.org/Special:Tags?tag=DOM&language=en]
    [링크 : https://developer.mozilla.org/en/document.getElementsByName]
    [링크 : https://developer.mozilla.org/en/document.getElementById]

Posted by 구차니
XMLHttpRequest() 는 XML 파서를 생성하는 자바스크립트 함수이다.
동기/비동기로 작동을 시킬수 있으며 동기로 작동하면 순간적으로 UI가 멈추니 쓰지 말란다~

기본 사용

XMLHttpRequest의 사용법은 아주 간단합니다. 이 개체의 인스턴스를 만들고, URL을 열고, 요청을 보내면 됩니다. 그 후에는 인스턴스의 결과 문서와 HTTP 상태 코드를 사용할 수 있게됩니다.

var req = new XMLHttpRequest();
req.open('GET', 'http://www.mozilla.org/', false);
req.send(null);
if(req.status == 200)
dump(req.responseText);
참고: 이 예제는 동기적으로 동작하므로 이 함수를 JavaScript에서 호출하면 UI가 멈춥니다. 실제 제품 코드에서는 이 코드를 사용하지 마십시오.

[링크 : https://developer.mozilla.org/ko/XMLHttpRequest]

누가 머래도 원본(?)이 장땡
[NoInterfaceObject]
interface XMLHttpRequestEventTarget : EventTarget {
// for future use
};

[Constructor]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
// event handler attributes
attribute Function onreadystatechange;

// states
const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;
readonly attribute unsigned short readyState;

// request
void open(DOMString method, DOMString url);
void open(DOMString method, DOMString url, boolean async);
void open(DOMString method, DOMString url, boolean async, DOMString? user);
void open(DOMString method, DOMString url, boolean async, DOMString? user, DOMString? password);
void setRequestHeader(DOMString header, DOMString value);
void send();
void send(Document data);
void send([AllowAny] DOMString? data);
void abort();

// response
readonly attribute unsigned short status;
readonly attribute DOMString statusText;
DOMString getResponseHeader(DOMString header);
DOMString getAllResponseHeaders();
readonly attribute DOMString responseText;
readonly attribute Document responseXML;
};

[링크 : http://www.w3.org/TR/XMLHttpRequest/]

'Programming > javascript & HTML' 카테고리의 다른 글

javascript - scope (var keyword)  (2) 2010.07.23
javascript / DOM - document.getelementbyid  (0) 2010.07.23
javascript - alert() confirm() prompt()  (6) 2010.07.20
javascript 객체출력  (8) 2010.07.20
javascript - for / for .. in  (0) 2010.07.18
Posted by 구차니
alert() 은 다음과 같이 "확인" 버튼만 존재한다.
그리고 리턴값은 undefined 이다. (값을 리턴하지 않음)

<html>
<script type="text/javascript">
ret = alert("al!");
document.write(ret, "<BR>");
</script>
</html>


confirm() 은 다음과 같이 "확인", "취소" 버튼이 존재한다.
그리고 리턴값은 true/false 이다.

<html>
<script type="text/javascript">
ret = confirm("co!");
document.write(ret, "<BR>");
</script>
</html>



prompt()는 다음과 같이 "확인", "취소" 버튼 그리고 editbox가 존재한다.
그리고 리턴값은 null(취소) 혹은 값이다(내용입력 없이 확인을 누르면 ""이 리턴된다)

<html>
<script type="text/javascript">
ret = prompt("pr!");
document.write(ret, "<BR>");
</script>
</html>


'Programming > javascript & HTML' 카테고리의 다른 글

javascript / DOM - document.getelementbyid  (0) 2010.07.23
javascript / XML - XMLHttpRequest  (2) 2010.07.23
javascript 객체출력  (8) 2010.07.20
javascript - for / for .. in  (0) 2010.07.18
javascript - 변수 타입  (0) 2010.07.18
Posted by 구차니