Stop using the dangerously unescaped 'innerHTML' for <option>

contents; use document.createTextNode like I do everywhere else.

[originally from svn r9787]
This commit is contained in:
Simon Tatham
2013-03-31 09:58:45 +00:00
parent 1264bccf40
commit 3e39f6b80b

View File

@ -64,8 +64,8 @@ mergeInto(LibraryManager.library, {
*/ */
js_add_preset: function(ptr) { js_add_preset: function(ptr) {
var option = document.createElement("option"); var option = document.createElement("option");
option.value = Pointer_stringify(ptr); option.value = gametypeoptions.length;
option.innerHTML = Pointer_stringify(ptr); option.appendChild(document.createTextNode(Pointer_stringify(ptr)));
gametypeselector.appendChild(option); gametypeselector.appendChild(option);
gametypeoptions.push(option); gametypeoptions.push(option);
}, },
@ -77,14 +77,12 @@ mergeInto(LibraryManager.library, {
* dropdown. * dropdown.
*/ */
js_get_selected_preset: function() { js_get_selected_preset: function() {
var val = 0;
for (var i in gametypeoptions) { for (var i in gametypeoptions) {
if (gametypeoptions[i].selected) { if (gametypeoptions[i].selected) {
val = i; return gametypeoptions[i].value;
break;
} }
} }
return val; return 0;
}, },
/* /*
@ -592,8 +590,8 @@ mergeInto(LibraryManager.library, {
var options = []; var options = [];
for (var i in items) { for (var i in items) {
var option = document.createElement("option"); var option = document.createElement("option");
option.value = items[i]; option.value = i;
option.innerHTML = items[i]; option.appendChild(document.createTextNode(items[i]));
if (i == initvalue) option.selected = true; if (i == initvalue) option.selected = true;
dropdown.appendChild(option); dropdown.appendChild(option);
options.push(option); options.push(option);
@ -605,7 +603,7 @@ mergeInto(LibraryManager.library, {
var val = 0; var val = 0;
for (var i in options) { for (var i in options) {
if (options[i].selected) { if (options[i].selected) {
val = i; val = options[i].value;
break; break;
} }
} }