如何将vbscript复制到函数并在body onload触发时运行它

时间:2012-02-09 13:49:59

标签: function vbscript onload onload-event

我继承了一个主要是vbscript / asp的网站。一页有<%vbscript%>在DOCTYPE HTML PUBLIC之前...行并在页面打开之前运行。即使用户按下另一页上的后退按钮到达那里,我也需要运行它。大概是通过放置一个onload函数 - 这是正确的吗?

这是< %%>的缩短部分。代码:

<%
if not (IsEmpty(Session("MM_Username"))) then
    Set checkSet = Server.CreateObject("ADODB.Recordset")
        checkSet.ActiveConnection = MM_CA_STRING
        checkSet.Source = "SELECT * FROM cpgdb.dbo_tbl_printing_tempstore WHERE username = '" & Session("MM_username") & "' AND addedtocart = 'NO'"
        checkSet.Open()

end if
%>
<!DOCTYPE HTML PUBLIC...
...
<body>

我想我需要让它像这样运行:

<!DOCTYPE HTML PUBLIC...
...
<body onload="runcode()">

Function runcode()
    if not (IsEmpty(Session("MM_Username"))) then
        Set checkSet = Server.CreateObject("ADODB.Recordset")
        checkSet.ActiveConnection = MM_CA_STRING
        checkSet.Source = "SELECT * FROM cpgdb.dbo_tbl_printing_tempstore WHERE username = '" & Session("MM_username") & "' AND addedtocart = 'NO'"
        checkSet.Open()

    end if
End Function

我试图通过简单地复制&lt;%code%&gt;来将此代码移动到该函数中并在函数 - 结束函数之间粘贴它。这不起作用 - 语法看起来不正确。有人可以告诉我为什么以及我需要做些什么调整才能使它工作,以及onload事件是否能满足我的需要?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,在VBScript / ASP中无法满足您的要求。 VBScript / ASP是一种服务器端编程语言,您尝试使用它来引发客户端行为。如果你想做这样的事情,你必须在Javascript中设置或设置“Meta Refresh”值:

<meta http-equiv="cache-control" content="no-cache"> <!-- tells browser not to cache -->

<meta http-equiv="expires" content="0"> <!-- says that the cache expires 'now' -->

<meta http-equiv="pragma" content="no-cache"> <!-- says not to use cached stuff, if there is any -->