强制ASP.NET为所有用户代理生成JavaScript
我最近在ASP.NET Web应用程序中注意到,如果我将用户代理设置为空字符串(使用FireFox插件来欺骗用户代理),那么ASP.NET将不会生成执行回发所需的javascript.更具体地说,如果您尝试从javascript调用__doPostBack(a,b)函数,则会收到错误消息,指出函数未定义.
我知道每个浏览器都有一个用户代理,所以这通常不会出现,但问题的实质仍然存在:如果你依赖,有些情况下无法识别或格式错误的用户代理可能会导致您的Web应用程序无法使用回发. 这类似于这个问题:ASP.net not generating javascript for some User Agents,但是如果我正确地阅读它,看起来你会逐个修复每个无法识别的用户代理并将其掩盖为另一个浏览器.我对单个用户代理的关注较少,而且由于某些用户代理无法使用我的应用程序而我不会知道它,因为错误发生在javascript而不是服务器上. 有谁知道我可以强制ASP.NET始终生成所需的JavaScript的方式? 解决方法
如果您为用户代理设置为空,或者您使用未知的用户代理字符串,则asp.net从浏览器目录中读取Default.browser文件,您可以在那里定义如何对此案例采取行动.
你需要更改的行和在这种情况下使用javascript是那些: <capability name="jscriptversion" value="5.6" /> <capability name="javascript" value="true" /> <capability name="javascriptversion" value="1.5" /> 在默认情况下,javascript行为false.我想在这里发表评论,我不确定你是否真的需要改变它,如果有人欺骗用户代理,就让它去做.如果他喜欢您的网站并且需要使用它,那么最好让您知道如何处理他使用的浏览器.另一方面,如果可能的话,你必须小心,你的网站即使没有javascript工作,至少对你做的大部分行动. 最好避免使用链接按钮(使用_doPostBack)并使用回拨按钮.我知道GridView和其他人也使用_doPostBack进行分页……好吧,但是更好的一个好网站甚至可以使用javascript工作. 一些类似的问题: 和这个博客:Bug and Fix: ASP.NET fails to detect IE10 causing _doPostBack is undefined JavaScript error or maintain FF5 scrollbar position (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- js_ajax模拟form表单提交_多文件上传_支持单个删除
- asp.net-mvc – 如何在MVC3中创建一个隐藏字段?
- asp.net – WCF与Web-api平台中的数据和事务
- adfs2.0 – 启用了非声明的ASP.NET应用程序和ADFS v2.0
- asp.net – 使用itemtemplate动态地将列添加到Grid-view
- asp.net-mvc – 如何渲染部分视图到字符串
- asp.net – 无法识别配置文件Web.config
- asp.net-mvc-3 – 从View中访问RouteData.Values的最简单的
- asp.net-mvc – 为什么我不能在ASP.NET MVC 3中使用HtmlDec
- 【FastDFS】FastDFS和asp.net项目的结合
- asp.net – 生成PDF,IE和HTTPS错误
- asp.net – 无法在嵌入式ASPX代码中引用动态对象
- asp.net-mvc – ASP.NET MVC的Content / Themes
- asp.net-mvc – HttpResponseException和HttpExc
- asp.net-mvc-3 – 在ASP.NET MVC中使用多个部分时
- .NET中的共享配置文件
- asp.net-mvc – 如何修复System.Net.Sockets.Soc
- asp.net – Crystal Reports“加载报告失败”错误
- rest – ASP.NET Web API身份验证选项
- asp.net – ascx中的Updatepanel刷新了整个控件