如何从另一个同样用Javascript编写的经典asp文件中包含一个用Javascript编写的经典asp?

如何从另一个同样用Javascript编写的经典asp文件中包含一个用Javascript编写的经典asp?,javascript,asp-classic,Javascript,Asp Classic,我正在从事一个经典的ASP项目,不幸的是无法切换到其他技术。我了解到可以用Javascript(ES3)编写服务器端的经典ASP代码,所以我做了一些调查,但我找不到从基于JS的ASP文件中包含另一个基于JS的ASP文件的方法 以下是我要导入的基于JS的ASP文件: includejs.asp <%@ Language=JavaScript %> <% function myFunction(p1, p2) { return p1 + p2; } %> <

我正在从事一个经典的ASP项目,不幸的是无法切换到其他技术。我了解到可以用Javascript(ES3)编写服务器端的经典ASP代码,所以我做了一些调查,但我找不到从基于JS的ASP文件中包含另一个基于JS的ASP文件的方法

以下是我要导入的基于JS的ASP文件:

includejs.asp

<%@ Language=JavaScript %>

<%
function myFunction(p1, p2) {
    return p1 + p2;
}

%>
<%@ Language=JavaScript %>

<script language="JScript" runat="server" src="./includejs.asp"></script>

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<%@ Language=JavaScript %>

<!--#include virtual="./includejs.asp" -->

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<!--#include file="lib2.asp" -->

<%
function lib() {
    return "this is lib.asp";
}
%>
<%
function lib2() {
    return "this is lib2.asp";
}

function myFunction2(p1, p2) {
    return p1 * p2;
}
%>

但是我想包含一个ASP包装的javascript,这样我也可以从包含的Js文件中包含其他文件。

我终于找到了答案。感谢@Flakes对我不应该再把它放进include文件的评论,这正是我上面第二种方法不起作用的原因

在这里,我举了一个更复杂的工作示例,以防有人需要它

myjs.asp包括lib.asp,其中包括lib2.asp

myjs.asp-lib2()函数来自lib2.asp,它包含在lib.asp中

<%@ Language=JavaScript %>

<!--#include file="lib.asp" -->

<%
    Response.Write(lib());
    Response.Write(lib2());
%>

lib.asp

<%@ Language=JavaScript %>

<%
function myFunction(p1, p2) {
    return p1 + p2;
}

%>
<%@ Language=JavaScript %>

<script language="JScript" runat="server" src="./includejs.asp"></script>

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<%@ Language=JavaScript %>

<!--#include virtual="./includejs.asp" -->

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<!--#include file="lib2.asp" -->

<%
function lib() {
    return "this is lib.asp";
}
%>
<%
function lib2() {
    return "this is lib2.asp";
}

function myFunction2(p1, p2) {
    return p1 * p2;
}
%>

lib2.asp

<%@ Language=JavaScript %>

<%
function myFunction(p1, p2) {
    return p1 + p2;
}

%>
<%@ Language=JavaScript %>

<script language="JScript" runat="server" src="./includejs.asp"></script>

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<%@ Language=JavaScript %>

<!--#include virtual="./includejs.asp" -->

<%
    // myFunction is from another file
    Response.Write(myFunction(20,2));
%>
<!--#include file="lib2.asp" -->

<%
function lib() {
    return "this is lib.asp";
}
%>
<%
function lib2() {
    return "this is lib2.asp";
}

function myFunction2(p1, p2) {
    return p1 * p2;
}
%>

很多事情都可能出错,所以你必须在每一个细节上小心


需要注意的一点是,如果您像我一样使用相对路径,并且lib.asp位于同一个目录中,则必须在include语句期间使用file=…而不是virtual=…。检查以查看include指令中有关文件与虚拟的更多详细信息

#include
语法是IIS服务器端包含,您应该能够在JScript中很好地使用它。只需将include文件
includejs.asp
包装在
中,或者将
放在include文件的顶部。不幸的是,它对我不起作用。我更新了我的问题,加入了我尝试过的@Lankymart注意,Lankymart说的是JScript,不是Javascript删除
Tbh@Dijkgraaf,我认为
语言
属性接受这两个属性,但将它们都视为。