사용자:YouKnowOne/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 = false;
for (var i in hangulizeLangs) {
var language = hangulizeLangs[i];
if (language.code == hangulizeCurrentTarget.lang || language['iso639-1'] == hangulizeCurrentTarget.lang) {
langcode = language.code;
break;
}
}
if (langcode) {
loadScript('http://www.hangulize.org/?word='+hangulizeCurrentTarget.innerHTML+'&lang='+langcode+'&jsonp=hangulizeRecievedWord');
} else {
hangulizeRequest();
}
}
}
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);
/* hangulize editform */
function addHangulizeEditform() {
var hangulizeTool = document.getElementById('hangulizeTool');
if (hangulizeTool) return;
hangulizeTool = document.createElement('div');
hangulizeTool.id = 'hangulizeTool';
hangulizeTool.innerHTML = 'Hangulize Tool: <select id="hangulizeLangs"><option id="hangulizeLangsLoading">Loading languages...</option></select><input type="text" id="hangulizeWord">';
var editform = document.getElementById('editform');
editform.insertBefore(hangulizeTool, editform.childNodes[0]);
loadScript('http://www.hangulize.org/langs?jsonp=hangulizeEditformLangsRecieved');
}
function hangulizeEditformLangsRecieved(data) {
if (!data.success) {
var hangulizeLangsLoading = document.getElementById('hangulizeLangsLoading');
hangulizeLangsLoading.innerHTML = 'Loading failed';
return;
}
var langsSelect = document.getElementById('hangulizeLangs');
langsSelect.innerHTML = '';
for (var i in data.langs) {
var lang = data.langs[i];
langsSelect.innerHTML += '<option value="'+lang.code+'">'+lang.code+'-'+lang.label+'</option>'
}
var hangulizeTool = document.getElementById('hangulizeTool');
hangulizeTool.innerHTML += '<span id="hangulizeResult"></span><a href="#" onclick="hangulizeEditformWord();">Submit</a>';
}
function hangulizeEditformWord() {
var langElem = document.getElementById('hangulizeLangs');
var wordElem = document.getElementById('hangulizeWord');
var lang = langElem.options[langElem.selectedIndex].value;
var word = wordElem.value;
var resultElem = document.getElementById('hangulizeResult');
resultElem.innerHTML = 'Querying...';
loadScript('http://www.hangulize.org/?word='+word+'&lang='+lang+'&jsonp=hangulizeEditformWordRecieved');
}
function hangulizeEditformWordRecieved(data) {
var resultElem = document.getElementById('hangulizeResult');
if (!data.success) {
resultElem.innerHTML = 'Query failed';
return;
}
resultElem.innerHTML = data.result;
}
if (wgAction == 'edit') {
addOnloadHook(addHangulizeEditform);
}