在IE7,8和9中填充列表时脚本失败

时间:2013-04-16 13:13:16

标签: javascript internet-explorer

我有一个朋友为我写的脚本,用文本文件填充了许多表单字段和日期列表。它调用脚本一次,并使用特定的类名填充所有字段。

这很好,可以在Firefox,Chrome,Safari和IE10中完美运行。但是,该字段在IE7,8或9中显示为空白(不填充)。

任何人都可以给予任何帮助将非常感激。我正在使用的代码如下:

<script type="text/javascript">

window.onload = function() {
// call function to get list of options (call ONCE only)
var dateOptions = getDateOptions();

// get all elements with class tstselect and set the content to dateoptions
var els = document.getElementsByClassName('tstselect') ;
for (var i=0; i<els.length; i++) {
    if (els[i]) {
        els[i].innerHTML = dateOptions;
    }
}
};

function getDateOptions() {
var url = 'dates.txt?'+new Date().getTime()

var output = '' ;
var txt=false;
if (window.ActiveXObject){
    try {
        txt=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e){
        try {
            txt=new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e){
          alert(e);
        }
    }
}
else if (window.XMLHttpRequest){
    txt=new XMLHttpRequest();
}
else {
    return false;
}
txt.onreadystatechange=function(){
    if (txt.readyState==4&&(txt.status==200||window.location.href.indexOf("http")==-1)){
        var mydates = txt.responseText.split('\n');
        for (var i=0;i<mydates.length;i++){
            if (mydates[i]) {
                // build up text string with all the options
                output += '<option value="' + mydates[i] + '">' + mydates[i] + '</option>' ;
            }
        }

    }
}
txt.open('GET',url,false);
try {
    txt.send(null);
}
catch (e){
}

return output; 
}
</script>

可以在以下位置找到操作脚本的示例:http://bespokebakery.co.uk/mailorder-birthday.html

提前致谢!!

1 个答案:

答案 0 :(得分:1)

选择框上的innerHTML在IE中不起作用。请查看以下link。链接中的答案之一将为您提供所需的解决方案