BLOG main image
분류 전체보기 (68)
excel.101 (0)
rewind (9)
(3)
(2)
목공 (3)
(3)
me2day (0)
The Ethereal Void (9)
코드 (14)
귀찮은것 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2007. 3. 21. 14:01
FireFox 에는 onpropertychange event가 없다.
IE에서 DOM element의 값 변경사항 등을 감시하는데, 다음과 같이 쓰인다.

IE 기준:
var ROFL = function() {
	if (event.propertyName == "value") {
		alert("I got ya!");
	}
}

var inputElement = document.getElementById("input"); 
inputElement.onpropertychange = ROFL;
inputElement.value = "snooping..";


하지만, FF에는 onpropertychange 이벤트가 없다. 한참 고민을 하던 중에 예전에 Netscape에는 변수의 변화를 감시할 수 있는, watch, unwatch 가 있었다. 이 놈들이 DOM element 에도 적용이 되는지 테스트해보았다.

var header = document.getElementById("header");
header.watch("id", function(id, xn, xp) {
    alert(id + "," + xn + "," + xp);
});
header.id = ":)";
header.unwatch("id");

header.style.watch("width", ....);
header.style.width = "100px";
header.style.unwatch("width");

된다. :)
그러나, 확인되야 될 사항이 있다.

  1. closures 사용에 따른 메모리 유출.
  2. 감시되고 있는 객체가 삭제될 경우.
  3. unwatch 를 사용하지 않을 경우 메모리 유출.


반응형