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

问题描述 投票:5回答:1

好吧,我有这个代码,但这是简体版本:

<!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. IE v11.0.9600.16428
  3. IIS v7.5.7600.16385

当我打开任一浏览器并以上述方式打开上述文件时:

IE ==> C:\ site \ proj \ default.htmChrome ==> file:/// C:/site/proj/default.htm

[两个浏览器都显示正确的结果:2 ...但是,当我这样打开文件时:

IE ==> http:// 门户 / proj / default.htmChrome ==> http:// 门户 / proj / default.htm

其中portallocalhost站点的名称,在IIS中进行设置。

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

对象不支持属性或方法'defineProperty'

虽然Chrome仍正确显示2


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

更改了[[IE的'兼容模式'或其他内容,还是只需要更新到IIS的较新版本?思考是...


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

是,我想创建新的indexOf属性

enumerable

,所以我使用Object.defineProperty将属性设置为

enumerable,这就是我最终在Stack'上使用的方式...”

Ok peep,所以我有这段代码,但这是一个简化的版本:
javascript arrays prototype indexof defineproperty
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.