Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web表单:body onload事件can';找不到Javascript函数_Javascript_Asp.net_Webforms_Dom Events - Fatal编程技术网

Web表单:body onload事件can';找不到Javascript函数

Web表单:body onload事件can';找不到Javascript函数,javascript,asp.net,webforms,dom-events,Javascript,Asp.net,Webforms,Dom Events,我来自MVC背景,对web表单几乎没有经验 我已经确定了问题所在,但到目前为止我无法解决这个问题 我有一个表单,在加载表单主体时执行Javascript函数。请注意,head标记有一个run-at-server属性,因为它需要使用Request.QueryString 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <sc

我来自MVC背景,对web表单几乎没有经验

我已经确定了问题所在,但到目前为止我无法解决这个问题

我有一个表单,在加载表单主体时执行Javascript函数。请注意,head标记有一个run-at-server属性,因为它需要使用
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>

除了使用
body
标记的
onload
属性外,您还可以在
标记中添加以下代码:

if(window.addEventListener) window.addEventListener("load", doSomething, true);
else window.onload = doSomething;

除了使用
body
标记的
onload
属性外,您还可以在
标记中添加以下代码:

if(window.addEventListener) window.addEventListener("load", doSomething, true);
else window.onload = doSomething;

您可以尝试从head标记中删除
runat=“server”
。您可以发布最终标记的外观吗?此外,执行服务器端表达式不需要使用
runat=“server”
。也就是说,服务器端表达式似乎没有用引号括起来。您确定
输入是一个整数吗。因为如果不是,则
foo
变量将是未定义的。Ash,感谢您的回复。请看编辑达林,谢谢你的回复。请查看编辑。@CodeRush,在生成的HTML中,您似乎使用了一些
crmForm.queryString
变量,我看不到这些变量在任何地方都有定义。如果将
doSomething
中的代码替换为警报,请将其放在HTML页面中,并在浏览器中运行,这样效果非常好。因此,您的HTML中一定还有其他未显示的内容。您可以尝试从head标记中删除
runat=“server”
。您可以发布最终标记的外观吗?此外,执行服务器端表达式不需要使用
runat=“server”
。也就是说,服务器端表达式似乎没有用引号括起来。您确定
输入是一个整数吗。因为如果不是,则
foo
变量将是未定义的。Ash,感谢您的回复。请看编辑达林,谢谢你的回复。请查看编辑。@CodeRush,在生成的HTML中,您似乎使用了一些
crmForm.queryString
变量,我看不到这些变量在任何地方都有定义。如果将
doSomething
中的代码替换为警报,请将其放在HTML页面中,并在浏览器中运行,这样效果非常好。所以在你的HTML中肯定还有一些你没有展示的东西。谢谢,我来试试。谢谢,我来试试。