突然遇到个很奇怪的BUG,翻页控件,其他浏览器一切正常,IE无法翻页,会提示 '__doPostBack' is undefined

后来搜索发现:

[原文發表地址] Bug and Fix: ASP.NET fails to detect IE10 causing _doPostBack is undefined JavaScript error or maintain FF5 scrollbar position 
[原文發表時間] 2009-05-20 01:41

瀏覽器版本號繼續升級過程中。IE9誕生了,IE10 也即將問世火狐5和6已經發布了,而7和8也快出現了,Opera已經到了11,Chrome還在繼續,我也不知道,應該總在14和50之間吧。不管怎样,不出意外版本號應該都會達到99。

在跟隨.NET 2.0和.NET 4一起發布的瀏覽器定義文件中有一個錯誤,也就是它們保存相當一部分瀏覽器版本的定義。但是瀏覽器的有些版本(比如IE10)不再在這個範圍之內。因此,ASP.NET把它們看做是未知的瀏覽器,默認降級處理,這样就會给用戶帶來不便,比如不支持JavaScript特性。

如果你想親自看看,那就創建一個全新的空白的網站(可以在Visual Studio 2010中試一下),添加一個需要JavaScript回調的控件(例如:<asp:LinkButton>),然後用IE9來運行站點(這是可行的)。再用IE10來運行(這就不行了)。查看一下頁面源代碼,比較一下發送到兩個版本的瀏覽器的HTML和JavaScript。

火狐5也遇到上述相似的問題,也就是無法檢測在瀏覽器中使用JavaScript重定位滾動條。這與为Web Form 頁面而設的MaintainScrollbackPositionOnPostBack屬性不符。

這些“無法檢測”錯誤在ASP.NET 2和ASP.NET4中都影響了Web Form頁面。如果你使用的是ASP.NET Web頁面,或者是ASP.NET MVC,但沒有用瀏覽器對象去檢測JavaScript支持,那你就不再受影響的範圍內。

修复

有兩種修复這個錯誤的方法:一個就是整體修复,另一個就是單獨修复每個站點。

整體修复

我們正准備發布一個Hotfix來修复這些問題,你可以通過KB文章來獲取。這些有修复 KB在一周內就會公布了。它們可以再一部機器上永久解决所有頁面瀏覽器檢測問題。這些修复也會在以後版本的framework中運用,最終會成为一個Windows更新。

· .NET 4 - http://go.rritw.com/support.microsoft.com/kb/2600088

·

· .NET 2.0 - http://go.rritw.com/support.microsoft.com/kb/2600100

修复所做的就是更新IE.瀏覽器和火狐瀏覽器的文件(路徑:\Windows\Microsoft.NET\Framework\<version>\Config\Browsers), 加上最新和未來已定義的版本號。不會影響其他任何東西。

單站點修复

如果你無法訪問整部機器,或者只想更新單一的項目,那就通過NuGet安裝App_BrowsersUpdate包吧。然後你在方案瀏覽器(Solution Explorer)中的頁面結構就會如右圖所示。注意NuGet使用的是.NET 4,所以對於那些只有.NET 2的系統來說,你就還要獲取 ZIP文件,手動將新瀏覽器文件添加至App_Browsers目錄。

· .NET 4 瀏覽器更新 NuGet 包 - http://nuget.org/List/Packages/App_BrowsersUpdate

· 安裝包 App_BrowsersUpdate

· .NET 2.0 瀏覽器更新 NuGet 包 - http://nuget.org/List/Packages/App_BrowsersUpdate.net20

· 安裝包 App_BrowsersUpdate.net20

· 注意NuGet是VS2010特定版的,所以如果你沒有nuget.exe和.NET 4,你也可以手動地從這個zip文件中直接复制.NET 2的更新瀏覽器文件到~\App_Browsers.

要修复這個問題更新整部機器更可取。

總結

· ASP.NET 可能無法辨識出一些瀏覽器的最新版本,還會經常把它們看做是低級的瀏覽器。(也就是: 不支持JavaScript。)

· 修复是指更新瀏覽器定義文件。

· 你可以安裝整體修复或者單一修复某些項目。

· Hotfix會在幾周內問世。KB文章會屆時提供下載鏈接。

· 這些文件也會是之後.NET 4修复的一部分,預期也會在2012年1月通過Windows更新推送给用戶。

· 下一版本的.NET framework會包括所有的更新文件。

我上傳了已經更新的firefox.browser和ie.browser文件,,這些文件預計會在下一版本的ASP.NET中添加。文件和源代碼在我的BitBucket repo中。如果你想了解詳情,可以去看看。

微软发的下栽地址是:http://hotfixv4.microsoft.com/.NET%20Framework%204.0%20-%20Windows%20XP,%20Windows%202003,%20Windows%20Vista,%20Windows%20Server%202008,%20Win7,%20Windows%20Server%202008%20R2%20(MSI)/nosp/DevDiv953277/30319.504/free/436907_intl_x64_zip.exe

IE Error: '__doPostBack' is undefined 问题解决的更多相关文章

  1. "Fatal error: Call to undefined function: file_put_contents()"

    打开页面时提示这个错误: Fatal error: Call to undefined function: file_put_contents() 意思是请求未定义的函数,出现这个提示通常有两种情况: ...

  2. fatal error: Call to undefined function mysqli_connect()

    在搭建PHP5.6+APACHE2.4+MYSQL5的平台时,测试是否成功连接mysql, 测试程序index.php <?php phpinfo() ?> 没有出现mysql的信息 所以 ...

  3. Fatal error: Call to undefined function imagettftext()解决办法

    Fatal error: Call to undefined function imagettftext()解决办法   我的问题是php编译安装时指定了gd的目录,其实不用指定.就可以了 博客分类: ...

  4. 如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误

    最近碰到一个很奇怪的问题! 新发布一个ASP.NET的网站,基于.net 4.0 framework,基本没有用到什么特别新的技术,但是由于给客户预览用的服务器比较老,操作系统用的是Windows 2 ...

  5. php提示Fatal error: Call to undefined function imagecreate()

    在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会 / ...

  6. Fatal error: Call to undefined function mysql_connect()

    我在进行PHP环境搭建:Windows 7下安装配置PHP+Mysql+apache环境时,之前都没有什么问题,只是在验证PHP是否能连接Mysql时出现如下错误:Fatal error: Call ...

  7. Ionic start 创建项目报错 Error with start undefined

    转自:http://blog.csdn.net/wenzigui_qy/article/details/52874542 在Installing npm packages的时候报错,如下: Insta ...

  8. Error: Dynamic is undefined

    1.错误描述 Error: Dynamic is undefined @http://localhost:8080/Query/resource/global/scripts/app.js:149:1 ...

  9. Fatal error: Call to undefined function json_decode()解决办法

    最近搭建测试服务器,访问网站查看报错日志出现如下错误: Fatal error: Call to undefined function json_decode() 出现该问题原因是安装PHP时没有安装 ...

随机推荐

  1. MongoDB整理笔记の新增Shard Server

    1.启动一个新Shard Server 进程 [root@localhost ~]# mkdir /data/shard/s2 [root@localhost ~]# /Apps/mongo/bin/ ...

  2. 关于在审查元素中看到的::before与::after

    审查元素中看到的这两个标签,表示内容并不在元素中,而是在css中,可以查看style看到具体内容. 一般来说这样做是为了清除浮动(clearfix)的代码,防止后边的容器因为浮动出现布局的混乱. 添加 ...

  3. java多线程的基本介绍

    Java多线程 1.进程与线程 进程是程序的一次动态执行过程,它需要经历从代码加载,代码执行到执行完毕的一个完整的过程,这个过程也是进程本身从产生,发展到最终消亡的过程.多进程操作系统能同时达运行多个 ...

  4. 关于 XML 字段内容查询

    找到个总结相当好的知识点的归纳,记在自己的博客里也方便查询 /* sql xml 入门:     --by jinjazz     --http://blog.csdn.net/jinjazz     ...

  5. SQLServer 附加数据库后只读或报错解决方法

    百度文库地址 http://wenku.baidu.com/link?url=3EnK52mOtll3svjce0OGUUu7h9EOWkUgty8VChkxRdX7LQlm9Ll6N_78ENngN ...

  6. shell-脚本-作用是发现前10个最占用磁盘空间的文件

    #!/bin/bash## 这个脚本的作用是发现前10个最占用磁盘空间的文件################定义这个脚本的全区变量##################################C ...

  7. mybatis 学习笔记(三):mapper 代理开发 dao 层

    mybatis 学习笔记(三):mapper 代理开发 dao 层 优势 通过使用mapper 代理,我们可以不需要去编写具体的实现类(使用 getMapper() 方法自动生成),只需编写接口即可, ...

  8. C#直接使用DllImport外部Dll的方法

    C#.Net调用基本格式:[DLLImport(“DLL文件路径”)]修饰符 extern 返回值类型 方法名称(参数列表) 如: [DllImport("kernel32.dll" ...

  9. Dubbo操作

    admin控制台安装 1.控制台下载地址https://github.com/apache/incubator-dubbo/releases 2.找到dubbo-admin 3.修改webapp/WE ...

  10. UML类图和时序图符号

    看懂UML类图和时序图 https://www.cnblogs.com/me115/p/4092632.html 内容目录: 从一个示例开始 类之间的关系 时序图 附录:<图说设计模式> ...