对象不支持此操作

时间:2012-04-04 17:52:07

标签: javascript internet-explorer dom prototype

我有以下代码在IE 7上抛出了我的错误:

if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.exec(ua) != null){
              rv = parseFloat( RegExp.$1 );
              if (rv == 7){
                  var contfaltandias = new Element('div');
                    contfaltandias.setAttribute('id', 'contfaltandias');
                    contfaltandias.setAttribute('style', 'display:none; width:100%; height:100%; z-index:1000; background:#003377; position: absolute; top:0;');
                    $('container').insert({
                            before:contfaltandias
                        });
                    new Effect.Parallel([
                                      new Effect.Appear('contfaltandias', { sync: true, duration: 2.0 }), 
                                      new Effect.Highlight('contfaltandias', { sync:true, startcolor: '#ff6000', endcolor: '#ffffff' }) 
                                 ], { 
                                     duration: 5.0,
                                     delay: 0
                                   });
                  }
          }
        }

我发现造成问题的一行就是:

  

var contfaltandias = new Element('div');

但为什么呢?任何帮助将不胜感激

//用于显示消息以转移到最新版本,我不像有人说那样糟糕的程序员

2 个答案:

答案 0 :(得分:2)

使用var contfaltandias = document.createElement('div'); https://developer.mozilla.org/en/DOM/document.createElement

答案 1 :(得分:1)

据我所知,使用document.createElement('type')创建了新元素。你应该尝试替换

var contfaltandias = new Element('div');

var contfaltandias = document.createElement('div');

然后,它应该工作。