fix for engine selector size when changing languages
This commit is contained in:
parent
d64fb6781c
commit
716e5ed6b0
@ -68,20 +68,52 @@ selectorChange: function(id, value) {
|
|||||||
// replace selector options with new names
|
// replace selector options with new names
|
||||||
selectorRenameOptions: function(id, options) {
|
selectorRenameOptions: function(id, options) {
|
||||||
var select = document.getElementById(id);
|
var select = document.getElementById(id);
|
||||||
var select_options = select.getElementsByTagName("option");
|
|
||||||
var styledSelect = document.getElementById("styled-select-"+id);
|
var styledSelect = document.getElementById("styled-select-"+id);
|
||||||
|
|
||||||
// fill dropdown menu with new option names
|
// create new dropdown menu
|
||||||
for(var i = 0; i < select_options.length; i++) {
|
var new_select = document.createElement("select");
|
||||||
select_options[i].childNodes[0].nodeValue = options[i].display;
|
new_select.id = id;
|
||||||
|
new_select.className = select.className;
|
||||||
|
new_select.onchange = select.onchange;
|
||||||
|
|
||||||
if(select_options[i].selected == true)
|
// fill new dropdown menu
|
||||||
styledSelect.childNodes[0].nodeValue = options[i].display;
|
var selected_display = "";
|
||||||
|
for(var i=0, size=options.length; i<size; i++) {
|
||||||
|
var option=document.createElement("option");
|
||||||
|
option.innerHTML = options[i].display;
|
||||||
|
option.value = options[i].value;
|
||||||
|
new_select.appendChild(option);
|
||||||
|
|
||||||
|
if( options[i].value == select.value )
|
||||||
|
selected_display = options[i].display;
|
||||||
}
|
}
|
||||||
|
new_select.value = select.value;
|
||||||
|
|
||||||
// resize visible dropdown menu as needed
|
// switch old with new dropdown menu
|
||||||
styledSelect.style.width = (select.offsetWidth-2)+"px";
|
select.parentNode.insertBefore(new_select, select);
|
||||||
styledSelect.style.height = (select.offsetHeight)+"px"; // clientHeight gives the height of the opened dropbox!
|
select.parentNode.removeChild(select);
|
||||||
|
|
||||||
|
// change styled dropdown menu size & language
|
||||||
|
styledSelect.childNodes[0].nodeValue = selected_display;
|
||||||
|
styledSelect.style.width = (new_select.offsetWidth-2)+"px";
|
||||||
|
styledSelect.style.height = (new_select.offsetHeight)+"px";
|
||||||
|
|
||||||
|
// // old variant without creating a new dropdown menu (works in current browsers, but not in older FF or IE)
|
||||||
|
// var select = document.getElementById(id);
|
||||||
|
// var select_options = select.getElementsByTagName("option");
|
||||||
|
// var styledSelect = document.getElementById("styled-select-"+id);
|
||||||
|
//
|
||||||
|
// // fill dropdown menu with new option names
|
||||||
|
// for(var i = 0; i < select_options.length; i++) {
|
||||||
|
// select_options[i].childNodes[0].nodeValue = options[i].display;
|
||||||
|
//
|
||||||
|
// if(select_options[i].selected == true)
|
||||||
|
// styledSelect.childNodes[0].nodeValue = options[i].display;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // resize visible dropdown menu as needed
|
||||||
|
// styledSelect.style.width = (select.offsetWidth-2)+"px";
|
||||||
|
// styledSelect.style.height = (select.offsetHeight)+"px"; // clientHeight gives the height of the opened dropbox!
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user