IE11错误,Object不支持属性或方法'defineProperty'

时间:2015-02-01 10:15:53

标签: javascript arrays prototype indexof defineproperty

好的,所以我有这个代码,但这里有一个简化版本:

<!DOCTYPE html>
<html>
    <head>
        <title>_</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <script>

            Object.defineProperty(
                Array.prototype,'len',{get:
                    function(){return this.length}
            });

            function pop(){
                ary=['abc',123];
                d1.innerText=ary.len;
            }

        </script>
    </head>
    <body onload="pop()">
        <div id="d1">d1</div>
    </body>
</html>

所以我的设置是:

  
      
  1. Chrome v40.0.2214.94 m
  2.   
  3. IE v11.0.9600.16428
  4.   
  5. IIS v7.5.7600.16385
  6.   

当我打开浏览器&amp;像这样打开上面的文件:

  

IE ==&gt; C:\网站\凸出\ Default.htm的
   Chrome ==&gt;文件:/// C:/site/proj/default.htm

两个浏览器都显示正确的结果:2 ... 然而,当我打开文件时:

  

IE ==&gt; HTTP:// 门户 /proj/default.htm
   Chrome ==&gt; HTTP:// 门户 /proj/default.htm

门户 localhost 网站的名称,在 IIS 中设置。

IE 显示undefined并抛出控制台错误:

  

对象不支持属性或方法&#39; defineProperty&#39;

Chrome 仍然正确显示2


所以,我想我的问题是......

IIS 是否会更改 IE &#39; 等,或者我只是需要更新到较新版本的 IIS


思考是......

我第一次玩.hta个文件&amp;我正在写一个Array.prototype.indexOf属性,因为我在尝试访问数组上的.indexOf时收到了类似的错误消息...

事情是,我想让新的indexOf属性可枚举,因此我使用Object.defineProperty将属性设置为 enumerable ,并且这就是我最终在Stack&#39; ...

的方式

1 个答案:

答案 0 :(得分:0)

我认为问题出在IIS中,我测试了IE11 / Win7 / NodeJs服务器中的页面,我可以看到&#39; 2&#39;。