본문으로 이동

사용자:거친마루/vector.js

위키백과, 우리 모두의 백과사전.

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다. 구글 크롬, 파이어폭스, 마이크로소프트 엣지, 사파리: ⇧ Shift 키를 누른 채 "새로 고침" 버튼을 클릭하십시오. 더 자세한 정보를 보려면 위키백과:캐시 무시하기 항목을 참고하십시오.

/* add result of hangulize.org to Template:lang as <abbr> */

var hangulizeTargets = new Array();
var hangulizeLangs = undefined;
var hangulizeCurrentTarget = undefined;

function loadScript(addr) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = addr;
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(script);
}
 
function hangulizeRequest() {
    if (hangulizeTargets.length > 0) {
        hangulizeCurrentTarget = hangulizeTargets.shift();
        var langcode = hangulizeCurrentTarget.lang;
        for (var i in hangulizeLangs) {
            var language = hangulizeLangs[i];
            if (language.code == langcode) break;
            if (language['iso639-1'] == langcode) {
                langcode = language['iso639-3'];
                break;
            }
        }
        loadScript('http://www.hangulize.org/?word='+hangulizeCurrentTarget.innerHTML+'&lang='+langcode+'&jsonp=hangulizeRecievedWord');
    }
}

function hangulizeLangsRecieved(data) {
    if (data.success) {
        hangulizeLangs = data.langs;
    }        
    hangulizeRequest();
}

function hangulizeRecievedWord(data) {
    var result = "Not supported Language";
    if (data.success) {
        result = data.result;
    }
    hangulizeCurrentTarget.innerHTML = '<abbr title="'+result+'">'+hangulizeCurrentTarget.innerHTML+'</abbr>';
    hangulizeRequest();
}

function hangulizeDocument() {
    var bodyContent = document.getElementById('bodyContent');
    var elems = bodyContent.getElementsByTagName('span');
    var targetsIndex = 0;
    for (var i in elems) {
        if (elems[i].lang) {
            hangulizeTargets[targetsIndex] = elems[i];
            targetsIndex += 1;
        }
    }
    if (hangulizeTargets.length > 0) {
        loadScript('http://www.hangulize.org/langs?jsonp=hangulizeLangsRecieved');
    }
}

$(hangulizeDocument);