ASPX无法访问Javascript.js

时间:2012-08-08 11:53:47

标签: javascript asp.net

第一次做一些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键。

那么,关于故障在哪里的任何想法?过去的事情,现在他们不会。

修改

  1. 我正在使用脚本管理器来快速处理必要的ASP.NET AJAX组件以启用部分回发。我需要__doPostBack。
  2. 我发现如果一个js函数被命名为pageLoad(),该函数将在页面加载或部分回发时激活。正是我需要的。
  3. 因此,asp.nex页面没有从.js加载pageLoad()函数。

1 个答案:

答案 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文件中使用它们。