ASP Classic - 在JavaScript页面中包含VBScript页面?

时间:2009-12-01 21:01:06

标签: asp-classic vbscript jscript

有没有办法将VBScript页面包含在使用Javascript编写的ASP页面中?

有一个用Javascript编写的ASP页面,但我们的侧边栏菜单是用VBScript编写的。当我将侧边栏asp文件包含在Javascript中时,服务器会出错。

< %@ LANGUAGE =“JavaScript”%>

<%

...

< ! - #include file =“sidebar.asp” - >

...

使用VBScript编写sidebar.asp。

2 个答案:

答案 0 :(得分:1)

您可以试试这个,但我的猜测是sidebar.asp将在您的Javascript代码之前执行。

< %@ LANGUAGE="JavaScript" %>

<%

...
<script language="VBscript" runat=server> 
< !--#include file="sidebar.asp"-->
</script> 
...

答案 1 :(得分:0)

我一直这样做,但是我的ASP / JScript页面写得有点不同。不是将页面语言切换为“JavaScript”,而是将其保留为默认的“VBScript”,然后使用<SCRIPT LANGUAGE="JavaScript" RUNAT="Server">块作为我的JScript代码。 JavaScript SCRIPT块在普通<% %>标记之前执行,因此我在SCRIPT块中执行所有页面处理,然后只需将结果插入到<% %>的页面中标签。这是一个例子:

mainpage.asp:

<SCRIPT LANGUAGE="JavaScript" RUNAT="Server">
var name;
var address;
var phone;
function main() {
    var rec = go_to_database();
    name = rec.first_name + " " + rec.last_name;
    address = rec.address;
    phone = rec.phone;
}
</SCRIPT><% main() %>
<html><head><title><%= name %></title></head><body>
<p>Name: <%= name %><br/>
Address: <%= address %><br/>
Phone Number: <%= phone %></p>
<!--#include file="subpage.asp"-->
</body></html>

subpage.asp:

<p>Blah blah blah, some random VBScript code: <%
    Dim whatever
    whatever = some_silly_thing()
    Response.Write(whatever)
%>.</p>

因此,首先IIS处理SSI并将subpage.asp包含到mainpage.asp中。然后,它评估JScript SCRIPT块,声明变量nameaddressphone并定义函数main

然后按顺序评估每个<% %>标记。 <% main() %>调用main函数并设置nameaddressphone的值。然后<%= name %><%= address %><%= phone %>将这些值替换为页面。最后,评估<% %>中的subpage.asp代码,并在页面输出中结束Response.Write值。

虽然整个页面不是用JScript编写的,但绝大多数代码都可以在SCRIPT块内。这对你有用吗?