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);
};