我来自MVC背景,我对网络表单几乎没有经验。
我已经确定了问题所在,但到目前为止我一直无法解决这个问题。
我有一个表单,用于在表单的主体加载时执行javascript函数。请注意head标签在服务器属性上运行,因为它需要使用Request.QueryString
代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script type="text/javascript">
function doSomething()
{
// Use web forms to do something
var foo = <%= Request.QueryString["input"] %>;
}
</script>
<title>Foo</title>
</head>
<body onload="doSomething()">
<form id="MainForm" runat="server">
<table width="272px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="body">
...
</td>
</tr>
</table>
</form>
</body>
</html>
我收到以下错误:
SCRIPT5007:属性'doSomething'的值为null或未定义,而不是Function对象。
我的猜测是某些东西在服务器或其他方面执行。这在以前(一年多以前)有效,因此可能会覆盖Web配置中的某些内容。我花了大部分时间在这上面,到目前为止没有运气。
谢谢
编辑:生成的输出低于
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function doSomething()
{
debugger;
var o = crmForm.queryString;
}
</script>
<title></title>
</head>
<body onload="doSomething()">
<form name="MainForm" method="post" action="fooPage.aspx?input=queryString" id="MainForm">
<div>
// hidden fields
<table width="272px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="body">
// inputs
</td>
</tr>
</table>
</form>
</body>
</html>
答案 0 :(得分:3)
您还可以在onload
代码中添加以下代码,而不是使用body
代码的<script>
属性:
if(window.addEventListener) window.addEventListener("load", doSomething, true);
else window.onload = doSomething;