ASP.net没有为某些用户代理生成javascript
|
********************编辑2 **********************
.Net实际上并没有根据这条信息生成所需的回发代码. 我不喜欢这样,因为iPhone和其他多媒体设备可以解释javascript,ASP.net打破任何依赖服务器生成的javascript运行的应用程序. 所以,如果社区允许它…我想将我的官方问题更改为…为什么ASP.net不会为特定浏览器生成javascript,以及如何关闭此“功能”. ***************结束编辑2 *************** 我有一个奇怪的问题.我在工作时将一些工作代码从我的远程主机复制到我的计算机上.当我尝试使用该页面时,我收到了一个javascript错误 __doPostBack is not defined
javascript:__doPostBack('ctl00$ContentPlaceHolder1$login','')()()
当我输出页面源很少时,确实没有服务器端生成的javascript. 我尝试创建一个简单的页面: <%@ Page Language="VB" AutoEventWireup="false" CodeFile="jsTest.aspx.vb" Inherits="_jsTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="tbTest" runat="server"></asp:TextBox><br />
<asp:LinkButton ID="linkTest" runat="server">LinkButton</asp:LinkButton>
</form>
</body>
</html>
代码隐藏: Partial Class _jsTest
Inherits System.Web.UI.Page
Protected Sub linkTest_Click(ByVal sender As Object,ByVal e As System.EventArgs) Handles linkTest.Click
Response.Write(tbTest.Text)
End Sub
End Class
得到同样的错误. 我尝试重新启动(嘿,它的工作时间有一半),清除了App_Code,global.asax和web.config中的所有内容,添加了一个带有autopostback = true的文本框…我没有想法. 任何人都可以了解这里发生的事情吗? **************更多信息************** <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNTA2MDE2NWRkxhZMwlMVwJprcVsvQLJLrTcgaSM=" />
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget,eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK20LZAAuzRsusGAsz0+6YPxxO+Ewv1XsD5QKJiiprrGp+9a3Q=" />
</div>
虽然Firefox中的源代码只显示: <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkxNTA2MDE2NWRkxhZMwlMVwJprcVsvQLJLrTcgaSM=" /> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK20LZAAuzRsusGAsz0+6YPxxO+Ewv1XsD5QKJiiprrGp+9a3Q=" /> 将网页保存到桌面并在记事本中打开显示同样的事情…… 解决方法问题是ASP.net默认处理未知浏览器的方式……比如iPhone.即使假设未知的浏览器可以使用javascript也很好……您可以在web.config或machine.config部分中指定浏览器具有的功能.查看http://slingfive.com/pages/code/browserCaps/以获取asp.net的更新browsercaps配置文件 以下是匹配基于GECKO的浏览器(Netscape 6,Mozilla / Firefox,…)的案例示例 <case match="^Mozilla/5.0 ([^)]*) (Gecko/[-d]+)(?'VendorProductToken' (?'type'[^/d]*)([d]*)/(?'version'(?'major'd+)(?'minor'.d+)(?'letters'w*)))?">
browser=Gecko
<filter>
<case match="(Gecko/[-d]+)(?'VendorProductToken' (?'type'[^/d]*)([d]*)/(?'version'(?'major'd+)(?'minor'.d+)(?'letters'w*)))">
type=${type}
</case>
<case> <!-- plain Mozilla if no VendorProductToken found -->
type=Mozilla
</case>
</filter>
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
ecmascriptversion=1.5
w3cdomversion=1.0
css1=true
css2=true
xml=true
tagwriter=System.Web.UI.HtmlTextWriter
<case match="rv:(?'version'(?'major'd+)(?'minor'.d+)(?'letters'w*))">
version=${version}
majorversion=0${major}
minorversion=0${minor}
<case match="^b" with="${letters}">
beta=true
</case>
</case>
</case> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 为什么ASP.NET MVC忽略了我的尾随斜杠?
- 用于诊断.NET中的内存泄漏的工具(ASP.NET应用程序)
- ASP.net会话状态服务信息
- asp.net – 请求格式无法识别的URL意外结束在’/转换’发生
- ASP.NET MVC模型绑定IList 参数
- asp.net – MVC ViewModel错误 – 没有为此对象定义的无参数
- asp.net – 动态列在回发后消失
- asp.net-mvc – ASP.Net MVC的AntiForgeryToken方法是否与负
- asp.net – 如何防止未经授权的蜘蛛侠
- asp.net – 如何将Controller上的Ajax reqest重定向到登录页
- asp.net-web-api – 间歇性“无法加载类型”Syst
- 有人可以向我介绍asp.net路由语法吗?
- asp.net-mvc – HttpPostedFileBase总是在ASP.NE
- asp.net-mvc – “添加ASP.Net文件夹”未启用
- asp.net – ResolveUrl / Url.Content在Classic
- asp.net – 如何将会话超时设置超过20分钟.
- asp.net – 如何确定HttpModules的执行顺序?
- asp.net+js实现批量编码与解码的方法
- asp.net-mvc – @ Html.ValidationSummary(true)
- asp.net-mvc – 如何在MVC Filter属性中解析依赖
