我有一个.aspx页面。我在(.cs)页面后面的代码中填充一个公共变量,然后在客户端的JS中访问该变量。我在FORM标记之后声明了脚本,如下所示: -
<body>
<form>
...
</form>
<script language="javascript" type="text/javascript">
debugger;
var data = "<%=cSharpData%>";
</script>
</body>
回发后,此脚本不会第一次执行,但是当我单击页面上的任何其他服务器按钮时,它将被执行。 知道为什么吗?
答案 0 :(得分:0)
你试过用jquery $(document).ready()
执行它吗?
类似的东西:
<script language="javascript" type="text/javascript">
$(document).ready(function(){....});
</scrip>
<强>更新强> 没有jquery
/* registr event on document load */
if ( document.addEventListener ) {
document.addEventListener( "DOMContentLoaded", log4link, false );
} else if ( document ) {
document.attachEvent("onreadystatechange",function(){
if ( document.readyState === "complete" ) {log4link();}
});}
答案 1 :(得分:0)
你的回发是用ajax完成的吗?
如果是这样,那么只刷新部分页面并且不再执行脚本。
您可以将其包装在函数中,并将该函数添加到回发回调处理程序。
这就是我在一个网站上的表现:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () { edit.update(); });
答案 2 :(得分:0)
在<FORM>
元素之后放置一些Javascript并不意味着在提交表单后它将被处理。它会在呈现HTML时得到处理,这就是您所看到的。
如果你想在POST一个表单后运行一些Javascript,那么你需要使用一个onClick处理程序,如下所示:
<FORM NAME="myform" ACTION="" METHOD="GET">
<INPUT TYPE="text" NAME="inputbox" VALUE=""><P>
<INPUT TYPE="button" NAME="button" Value="Click" onClick="dosomejavascriptstuff()">
</FORM>
答案 3 :(得分:0)
感谢您的回复。我接近这个问题,但我不知道解决方案:( C#变量包含路径信息“D:\”,当我在JS变量上设置它时,我得到的错误是“未终止的字符串常量”。 我该如何克服这一点。
实际上这就是问题,为什么剧本没有被执行。一旦我删除了“\”,它就有效了!