【问题标题】:How to include a classic asp written in Javascript from another classic asp file also written in Javascript?如何从另一个用 Javascript 编写的经典 asp 文件中包含用 Javascript 编写的经典 asp?
【发布时间】:2020-07-23 15:32:54
【问题描述】:

我正在处理一个经典的 ASP 项目,但很遗憾无法切换到另一种技术。我了解到可以在 Javascript (ES3) 中编写服务器端经典 ASP 代码,因此我进行了一些调查,但我找不到从基于 JS 的 ASP 文件中包含另一个基于 JS 的 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 文件中包含其他文件。

【问题讨论】:

  • #include 语法是 IIS 服务器端包含,您应该可以将它与 JScript 一起使用。只需将包含文件 includejs.asp 包装在 &lt;script lamguage="JScript"&gt; 中或将 &lt;%@ Language="JScript" %&gt; 放在包含文件的顶部即可。
  • 不幸的是,它对我不起作用。我更新了我的问题以包括我尝试过的@Lankymart
  • 请注意 Lankymart 说 &lt;script lamguage="JScript"&gt; 它是 JScript,而不是 JavaScript
  • 从包含文件中删除&lt;@ Language= 行,因为它会导致包含文件中出现多个页面指令。
  • Tbh @Dijkgraaf,我认为language 属性同时接受,但将它们都视为jscript

标签: javascript asp-classic


【解决方案1】:

我终于明白了。感谢@Flakes 关于我不应该将 再次放入包含文件的评论,这正是我上面的第二种方法不起作用的原因。

这里我放了一个更复杂的工作示例,以防万一有人需要。

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 以查看有关包含指令中文件与虚拟的更多详细信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多