IE 10上每个页面都有Javascript错误

Ton*_*ony 15 javascript vb.net asp.net internet-explorer-10

我的asp.net网站在IE6,IE7,IE8,IE9,Chrome,Safari,Firefox和Opera上运行良好.但它在IE10中根本不起作用.

如果我单击站点中的任何位置(任何按钮,任何链接等),它将返回以下错误:

SCRIPT5022: Sys.ArgumentOutOfRangeException: Value must be an integer.
Parameter name: x
Actual value was 5.999999523162842. 
Run Code Online (Sandbox Code Playgroud)

由于这个问题,JS的东西,比如标签,都不起作用.我跟踪了问题,它在MicrosoftAjax.js中,特别是在以下方法中.

Sys.UI.Point = function Sys$UI$Point(x, y) {
    /// <param name="x" type="Number" integer="true"></param>
    /// <param name="y" type="Number" integer="true"></param>
    /// <field name="x" type="Number" integer="true"></field>
    /// <field name="y" type="Number" integer="true"></field>
    var e = Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;

    this.x = x;
    this.y = y;
Run Code Online (Sandbox Code Playgroud)

从6开始,它适用于所有其他IE版本,这是一个相当的命运.

我知道HTML只支持真正的浏览器,而不是Internet Explorer,但我的客户真的希望该网站能够在IE10中运行.

需要明确的是,它适用于ie6到9,chrome,firefox和opera.它们都没有显示javascript错误,只有ie10,并且每次点击都会出现此错误.我copule没跟踪谁在调用这个方法.这是一个很大的网站,我使用的js代码都没有调用它.我认为可能MicrosoftAjax.js框架绑定了click事件并且它正在执行某些东西,但我不确定它在执行什么.

谁能帮我?

Maf*_*osh 18

我在Yuriy的博客中找到了一个很好的解决方案:

<script language="javascript">
    Sys.UI.Point = function Sys$UI$Point(x, y) {

        x = Math.round(x);
        y = Math.round(y);

        var e = Function._validateParams(arguments, [
            {name: "x", type: Number, integer: true},
            {name: "y", type: Number, integer: true}
        ]);
        if (e) throw e;
        this.x = x;
        this.y = y;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

将其粘贴到页面上以覆盖Sys $ UI $ Point函数以对数字进行舍入.

或者,设置 <compilation debug="false">

这些都适用于我.


Ton*_*ony 5

答案在以下链接中:

http://support.microsoft.com/kb/936993

我不得不改变Microsoft.Ajax.js.

  • 我有点难过我不是唯一一个仍在使用Microsoft Ajax Extensions 1.0运行ASP.NET 2.0项目的人...我觉得你很痛苦. (2认同)