Javascript 我的代码可以在Firefox中使用,但不能在Internet Explorer中使用

Javascript 我的代码可以在Firefox中使用,但不能在Internet Explorer中使用,javascript,Javascript,这段代码在Firefox中运行良好,但IE9返回一个错误,即“未定义区域” function dbasetype(){ var dbasedata = document.forms[0]._dbase_name.value; dbasedata = dbasedata.toUpperCase(); dbasedata = dbasedata.replace(/\s/g, ""); if (dbasedata.indexOf("UK_CONTACTS")==

这段代码在Firefox中运行良好,但IE9返回一个错误,即“未定义区域”

function dbasetype(){

    var dbasedata = document.forms[0]._dbase_name.value;
    dbasedata = dbasedata.toUpperCase();
    dbasedata = dbasedata.replace(/\s/g, "");


    if  (dbasedata.indexOf("UK_CONTACTS")==-1) {
        _area.value = _dbase_name.value;            
    } else {
        setarea();
    }
在您的回答之后,我现在已将代码更改为此,并且它可以正常工作。我不明白为什么它在没有定义的Firefox中工作。我猜它是从调用这个函数的函数中带出来的

function dbasetype(){

var dbasedata = document.forms[0]._dbase_name.value;
        dbasedata = dbasedata.toUpperCase();
        dbasedata = dbasedata.replace(/\s/g, "");

var area = document.forms[0]._area;     
var _dbase_name = document.forms[0]._dbase_name;

if  (dbasedata.indexOf("UK_CONTACTS")==-1) {
        area.value = _dbase_name.value;         
     } else { setarea(); }
     }
}

_区域的定义在哪里?您是否依赖于非标准行为,其中_area是页面上元素的ID?如果是这样,请切换到document.getElementById“u区域”

就我而言,IE不支持document.forms[]数组…

因为您提供的代码在.value行之前没有提到“u区域”,所以很难找出它不起作用的原因。此外,您一次与家长一起引用数据库名称,一次不按顺序引用其他问题。这似乎是有线的。通常IE具有映射到ID而不是Firefox的全局对象。确定你没有混淆Firefox和IE吗?好吧,如果_area是页面元素的id,那么它可以在IE中工作,但不能在Firefox中工作……是这样吗?我不记得是哪个浏览器做的。。。仍然无法回答“面积”的定义是的,我同意,问题出在“面积”上。Firefox对于不使用元素id值进行隐式变量处理相当固执;webkit浏览器的行为类似于IE。我认为这是IE中一个可怕的mis功能,不应该被模仿,但那只是我自己-结果是我需要定义“_区域”。它是在调用该函数的函数中定义的,并且在Firefox中工作正常,奇怪。请记住,我只是在晚上编程了几个星期:s