IEでinnerHTML、selectとらないとか

IEはselectやtextareaに対してinnerHTMLが利かない。」

そんなことはつゆ知らず。
二つのSELECTタグの中でOPTIONタグを相互に行き交うフォームを作ったところ、
IEでは全く動いていなかった。

というわけで解決策

HtmlElement.OuterHtml プロパティ
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.outerhtml(VS.80).aspx

JavaScript の要素追加・変更で innetHTML と DOM の速度検証
http://www.drk7.jp/MT/archives/001313.html

IEの判定をどうするか
ここではdocument.allがTRUEかどうかで判定しているけど、

var isMSIE = /*@cc_on!@*/false;

としたほうがいいかもしれない。

/**
 * リストに追加
 */
function addList()
{
    var len = document.getElementById('leftlist').length;
    var i = 0;
    var leftlList = new Array;
    var rightList = new Array;
    var rightTextList = new Array;
    for (i = 0; i < len; i++) {
        var option = document.getElementById('leftlist').options[i];
        if (option.selected) {
            rightList.push(option.value);
            rightTextList.push(option.text);
        }
    }
    var len = document.getElementById('rightlist').length;
    for (i = 0; i < len; i++) {
        var option = document.getElementById('rightlist').options[i];
        if (option.selected) {
        leftList.push(option.value);
        }
    }

	if(document.all) {
	        outerData = '<div id="sendid"><select name="send[]" id="send" size="10" multiple="multiple" >';
		for(i=0;i < sendMailList.length; i++){
			if(!in_array(rightList[i], leftList)){
				outerData = outerData+ '<option value="'+rightList[i]+'" selected>'+rightTextList[i]+'</option>';
	                }
	        }
	        outerData = outerData+ '</select></div>';
	        document.getElementById('rightlist').outerHTML = outerData;
	} else {
		var innerData = '';
		for(i=0;i < rightList.length; i++){
			if(!in_array(rightList[i], leftList)){
				innerData = innerData+ '<option value="'+rightList[i]+'" selected>'+rightTextList[i]+'</option>';
			}
		}
		exist = document.getElementById('send').innerHTML;
		document.getElementById('send').innerHTML= exist + innerData;
	}

}

なんだか古臭いJavascriptになってしまったけど、ひとまず解決