Question:
I tried loading two frames in the browser called “TOP” and “BOTTOM”. The “BOTTOM” frame loads a JavaScript file (j1.js) and another two frames in it called “LEFT” and “RIGHT”. In the “LEFT” frame, a form called “formA” contains a button “B1” and a select object “S1”. Every time you click the “B1” button, it calls the function using this code:
"onClick=parent.add_option(S1)"add_option is defined in j1.js as this:function add_options(sel_obj){var tstr;tstr = sel_obj.length + " th item";alert (sel_obj.name);sel_obj.options[sel_obj.length] = new Option(tstr, tstr);}
This code works fine in Internet Explorer 4 and all versions of Netscape, but I can’t get it to work in IE5.
Answer:
This is tough. Other than possibly deleting the space between alert and (sel_obj.name), I don’t see any reason why it shouldn’t work. I do know that in IE5, the object model for adding an option to a select box is syntactically a little different here than what you have:
var opt=document.createElement("OPTION");opt.text=tstr;opt.value=tstr;sel_obj.options.add opt;
This code definitely works. Note that the name of the element to be created must be in uppercase.