第一次做一些javascript。 我正在玩一个sessiontimeout,当我在.aspx页面中有代码时,它运行良好。 下一步是将代码放在.js页面中。所以这是我现在的阵容。
Script.aspx.js
var iddleTimeoutWarning = null;
var iddleTimeout = null;
function pageLoad()
{
if (iddleTimeoutWarning != null)
clearTimeout(iddleTimeoutWarning);
if (iddleTimeout != null)
clearTimeout(iddleTimeout);
var millisecTimeOutWarning = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"]) * 60 * 1000 %>;
var millisecTimeOut = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeout"]) * 60 * 1000 %>;
iddleTimeoutWarning = setTimeout("DisplayIddleWarning()", millisecTimeOutWarning);
iddleTimeout = setTimeout("TimeoutPage()", millisecTimeOut);
}
function DisplayIddleWarning()
{
document.getElementById("LblWarning").innerHTML = "Warning Message";
}
function TimeoutPage()
{
__doPostBack('FiresAutoIdle','');
}
ASPX页面(因为.js页面中的代码可以正常运行,所以确实错误在这里)
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="Scripts/Script.aspx.js"/>
</Scripts>
</asp:ScriptManager>
我在web.config中也有一些代码行来设置SessionTimeout和SessionTimeoutWarning键。
那么,关于故障在哪里的任何想法?过去的事情,现在他们不会。
修改
因此,asp.nex页面没有从.js加载pageLoad()函数。
答案 0 :(得分:1)
解决。
您无法在javascript中设置asp变量。所以我们必须在ASPX页面中设置变量,然后让javascript使用它们。
ASPX
<script type="text/javascript">
var millisecTimeOutWarning = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"]) * 60 * 1000 %>;
var millisecTimeOut = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeout"]) * 60 * 1000 %>;
</script>
然后在.js文件中使用它们。