如何从另一个同样用 Javascript 编写的经典 asp 文件中包含一个用 Javascript 编写的经典 asp?
How to include a classic asp written in Javascript from another classic asp file also written in Javascript?
我正在做一个经典的 ASP 项目,很遗憾无法切换到其他技术。我了解到可以在 Javascript (ES3) 中编写服务器端经典 ASP 代码,所以我做了一些调查,但我找不到从我的 JS 中包含另一个基于 JS 的 ASP 文件的方法基于 ASP 文件。
这是我要导入的基于 JS 的 ASP 文件:
includejs.asp
<%@ Language=JavaScript %>
<%
function myFunction(p1, p2) {
return p1 + p2;
}
%>
并且我尝试了以下两种方法,都没有用
myjs1.asp
<%@ Language=JavaScript %>
<script language="JScript" runat="server" src="./includejs.asp"></script>
<%
// myFunction is from another file
Response.Write(myFunction(20,2));
%>
myjs2.asp
<%@ Language=JavaScript %>
<!--#include virtual="./includejs.asp" -->
<%
// myFunction is from another file
Response.Write(myFunction(20,2));
%>
我的发现
我第一次尝试就能够导入如下所示的纯 javascript 文件
function myFunction(p1, p2) {
return p1 + p2;
}
但我想包含一个 ASP 包装 javascript 以便我也可以包含包含的 Js 文件中的其他文件。
我终于明白了。感谢@Flakes 关于我不应该在包含文件中再次放入 <%@ Language=JavaScript %> 的评论,这正是我上面的第二种方法不起作用的原因。
在这里我放了一个更复杂的工作示例,以防万一有人需要它。
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
<!--#include file="lib2.asp" -->
<%
function lib() {
return "this is lib.asp";
}
%>
lib2.asp
<%
function lib2() {
return "this is lib2.asp";
}
function myFunction2(p1, p2) {
return p1 * p2;
}
%>
很多事情都可能出错,所以你必须注意每一个细节。
需要注意的一件事是,如果您像我一样使用相对路径并且您的 lib.asp 在同一目录中,则必须使用 file=... 而不是 virtual=... 在 #include 语句中。检查 here 以查看有关包含指令中的文件与虚拟的更多详细信息
我正在做一个经典的 ASP 项目,很遗憾无法切换到其他技术。我了解到可以在 Javascript (ES3) 中编写服务器端经典 ASP 代码,所以我做了一些调查,但我找不到从我的 JS 中包含另一个基于 JS 的 ASP 文件的方法基于 ASP 文件。
这是我要导入的基于 JS 的 ASP 文件:
includejs.asp
<%@ Language=JavaScript %>
<%
function myFunction(p1, p2) {
return p1 + p2;
}
%>
并且我尝试了以下两种方法,都没有用
myjs1.asp
<%@ Language=JavaScript %>
<script language="JScript" runat="server" src="./includejs.asp"></script>
<%
// myFunction is from another file
Response.Write(myFunction(20,2));
%>
myjs2.asp
<%@ Language=JavaScript %>
<!--#include virtual="./includejs.asp" -->
<%
// myFunction is from another file
Response.Write(myFunction(20,2));
%>
我的发现
我第一次尝试就能够导入如下所示的纯 javascript 文件
function myFunction(p1, p2) {
return p1 + p2;
}
但我想包含一个 ASP 包装 javascript 以便我也可以包含包含的 Js 文件中的其他文件。
我终于明白了。感谢@Flakes 关于我不应该在包含文件中再次放入 <%@ Language=JavaScript %> 的评论,这正是我上面的第二种方法不起作用的原因。
在这里我放了一个更复杂的工作示例,以防万一有人需要它。
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
<!--#include file="lib2.asp" -->
<%
function lib() {
return "this is lib.asp";
}
%>
lib2.asp
<%
function lib2() {
return "this is lib2.asp";
}
function myFunction2(p1, p2) {
return p1 * p2;
}
%>
很多事情都可能出错,所以你必须注意每一个细节。
需要注意的一件事是,如果您像我一样使用相对路径并且您的 lib.asp 在同一目录中,则必须使用 file=... 而不是 virtual=... 在 #include 语句中。检查 here 以查看有关包含指令中的文件与虚拟的更多详细信息