Javascript 구성 / widget 객체
이벤트 핸들러
| 종류 | 설명 |
|---|---|
| onLoad | 위젯이 사용자의 웹브라우저에서 새로 시작할 때 호출됩니다. |
| onRefresh | 위젯의 autoRefresh 설정에 의해, 또는 사용자가 설정값을 변경하여 저장하는 순간 호출됩니다. (단, 위자드팩토리에서는 사용되지 않습니다.) |
| onResize(Number width, Number height) | 사용자에 의해 위젯의 크기가 변경되었을 경우 호출됩니다. 인자로는 폭과 높이를 넘겨줍니다. (단, 위자드팩토리에서는 사용되지 않습니다.) |
| onUpdateTitle(String newTitle) | 사용자에 의해, 또는 widget.setTitle 메소드에 의해 위젯 제목이 변경되었을 경우 호출됩니다. 인자로 새 제목을 넘겨줍니다. (단, 위자드팩토리에서는 사용되지 않습니다.) |
widget.onLoad = function() {
widget.body.removeClassName('loading');
var region = widget.getValue('region');
MyWidget.setup(region);
};
widget.onRefresh = function() {
var region = widget.getValue('region');
MyWidget.setup(region);
};
widget.onResize = function(width, height) {
var elem = widget.body.getElementsByTagName('ul')[0];
elem.style.width = width + 'px';
elem.style.height = height - 65 + 'px';
};
widget.onUpdateTitle = function(newTitle) {
widget.setValue('myTitle', newTitle);
};
메소드
| 종류 | 설명 |
|---|---|
| log(String msg) | 웹브라우저가 지원하는 경우 javascript 콘솔 창에 메시지를 보여 줍니다. |
| setTitle(String newTitle) | 위젯의 제목을 newTitle로 변경합니다. (단, 위자드팩토리에서는 사용되지 않습니다.) |
| getValue(String name) | 위젯 설정의 name을 이름으로 하는 설정 값을 가져옵니다. |
| setValue(String name, Object value) | 위젯 설정의 name을 이름으로 하는 설정을 value를 값으로 변경합니다. (단, 위자드팩토리에서는 퍼가기 설정시에만 사용 가능합니다. |
| createElement(String tagName) | tagName을 태그의 이름으로 하는 DOM element를 생성합니다. |
| openURL(String url) | 웹주소 url을 새 창으로 엽니다. |
| getSize() | 위젯 영역의 크기를 Object 형태로 반환합니다. 예) {width: 170, height: 250} |
| getWidgetId() | 위젯의 고유아이디를 반환합니다. |
| getInstanceId() | 위젯 퍼가기 후에 할당되는 고유아이디(32자리)를 반환합니다. (단, 퍼가기 전에는 0을 반환합니다.) |
| getExecuteHost() | 위젯이 설치되어 실행되는 호스트(블로그) 주소를 반환합니다. |
| getExecuteURI() | 위젯이 설치되어 실행되는 URI 값을 반환합니다. |
var MyWidget = {
onHit: function() {
var hit = widget.getValue('hit') + 1;
var widgetUrl = 'http://wzdfactory.com/gallery/detail/' + widget.getWidgetId();
widget.setValue('hit', hit);
widget.setTitle('MyGreatWidget (' + hit + ')');
widget.log("You've just clicked! at " + widget.getInstanceId());
widget.log("Blog : " + widget.getExecuteHost());
widget.openURL(widgetUrl);
return false;
}
};
widget.onLoad = function() {
var elem = widget.createElement('img');
elem.src = '/anEvil.gif';
elem.onclick = MyWidget.onHit;
widget.body.appendChild(elem);
};
속성
| 종류 | 설명 |
|---|---|
| body | 일반 HTML 문서의 document.body에 해당하는 위젯의 최상위 DOM element를 가리킵니다. 이 element는 기본적으로 WZDAPI.$ 확장이 적용되어 있습니다. 자세한 내용은 해당 문서를 참고하세요. |
| lang | 사용자의 언어 설정을 알려줍니다. ISO 639-1을 따르는 두 개의 소문자 알파벳으로 표현됩니다. (ko, en, ja, 등) (단, 위자드팩토리에서는 사용되지 않습니다.) |
| locale | 사용자의 지역 설정을 알려줍니다. ISO 3166-1 alpha-2을 따르는 두 개의 대문자 알파벳으로 표현됩니다. (KR, US, JP, 등) (단, 위자드팩토리에서는 사용되지 않습니다.) |
var MyTranslation = {
ko: {
title: '심슨',
text: '호머, 마지, 바트, 매기, 리사',
locale: {
KR: '한국',
US: '미국',
unknown: '알 수 없는 지역'
}
},
en: {
title: 'The Simpsons',
text: 'Hormer, Marge, Bart, Maggie, Lisa',
locale: {
KR: 'South Korea',
US: 'United States',
unknown: 'Unknown location'
}
}
};
widget.onLoad = function()
{
var aTranslation = MyTranslation[widget.lang] || MyTranslation.ko;
widget.setTitle(aTranslation.title);
widget.body.innerHTML = aTranslation.text + ' / ' +
(aTranslation.locale[widget.locale] || aTranslation.locale.unknown);
};