📄 dynamiccombo.js
字号:
/* * GContact / PAUL Grégory * * This file manages dynamics list (like google suggest) used for contact type and address title. */var dynamicList;var dynamicInput;var dynamicNextInput;/* * Handler wich manage the dynamic combo list for contact types or address titles. * * @param Javascript event * @param 'ct' for contact, 'addr' for address * @param input type containing the type value * @param id number of the contact / address */function updateCombo(e, kind, input, id) { if (!e) var e = window.event; var idListToSearch = ((kind == 'ct') ? "ctTypeList" : "addrTitleList") + ((id) ? id : ''); var idValueToSearch = ((kind == 'ct') ? "ctValue" : "addrStreet") + ((id) ? id : ''); var listFeeder = ((kind == 'ct') ? typesAvailable : AddrTitlesAvailable); dynamicList = document.getElementById(idListToSearch), nbItem = 0; dynamicInput = input; dynamicNextInput = document.getElementById(idValueToSearch); if (e.keyCode == 38) { // Up Arrow if (dynamicList.selectedIndex > 0) dynamicList.selectedIndex--; } else if (e.keyCode == 40) { // Down Arrow if (dynamicList.selectedIndex < dynamicList.options.length-1) dynamicList.selectedIndex++; } else if (e.keyCode == 13 && dynamicList.style.display == 'block') { // Enter input.value = dynamicList.options[dynamicList.selectedIndex].text dynamicList.options.length = 0; dynamicList.style.display = 'none'; if (dynamicNextInput) dynamicNextInput.focus(); } else { // Something else : feeding the list dynamicList.options.length = 0; for (var i = 0; i < listFeeder.length; i++) { if (inStr(input.value,listFeeder[i])) { dynamicList.options[nbItem] = (new Option(listFeeder[i], nbItem)); if (nbItem == 0) dynamicList.selectedIndex = nbItem; nbItem++; } } dynamicList.size = nbItem; dynamicList.style.display = (nbItem > 0) ? 'block' : 'none'; dynamicList.onclick = clickOnList; } return true;}/* * Trap the mouse click in the list * @param event */function clickOnList(event) { if (dynamicList && dynamicInput) { dynamicInput.value = dynamicList.options[dynamicList.selectedIndex].text dynamicList.options.length = 0; dynamicList.style.display = 'none'; if (dynamicNextInput) dynamicNextInput.focus(); } dynamicList = dynamicInput = dynamicNextInput = null; return true;}/* * Handler for a new field (whithout an id) * @param Javascript event * @param 'ct' for contact, 'addr' for address * @param input type containing the type value */function updateComboWithoutId(e, kind, input) { return updateCombo(e, kind, input, '');}/* * Clean and hide the dynamic list */function cleanList(e) { if (dynamicList != null) { dynamicList.options.length = 0; dynamicList.style.display = 'none'; } dynamicList = dynamicInput = dynamicNextInput = null; return true;}/* * Look for str1 in str2 */function inStr(str1, str2) { if (str1.length == 0) return true; else { for(var i = 0; i < str1.length && i < str2.length; i++) { if (str1.charAt(i) != str2.charAt(i)) return false; } if (str1.length > str2.length) return false; return true; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -