Estoy trabajando en un proyecto ASP clásico y, lamentablemente, no puedo cambiar a otra tecnología. Aprendí que es posible escribir código ASP clásico del lado del servidor en Javascript (ES3), así que investigué un poco, pero no puedo encontrar la manera de incluir otro archivo ASP basado en JS desde mi archivo ASP basado en JS.

Aquí está el archivo ASP basado en JS que quiero importar:

includejs.asp

<%@ Language=JavaScript %>

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

%>

Y probé las siguientes 2 formas, ninguna funcionó

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));
%>

Mis hallazgos

Pude importar un archivo javascript puro como el siguiente con mi primer intento

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

Pero quiero incluir un javascript envuelto en ASP para poder incluir también otros archivos del archivo Js incluido.

2
Alex 23 jul. 2020 a las 18:32

1 respuesta

La mejor respuesta

Finalmente lo resolví. Gracias por el comentario de @ Flakes acerca de que no debería volver a poner <% @ Language = JavaScript%> en el archivo de inclusión, que fue exactamente la razón por la que mi segundo enfoque anterior no funcionó.

Aquí pongo un ejemplo de trabajo más complicado por si alguien lo necesita.

Myjs.asp incluye lib.asp que incluye lib2.asp

myjs.asp : la función lib2 () es de lib2.asp que está incluida en 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;
}
%>

Muchas cosas pueden salir mal, por lo que hay que tener cuidado en cada detalle.

Una cosa a tener en cuenta es que si está usando una ruta relativa como yo y su lib.asp está en el mismo directorio, debe usar file = ... en lugar de virtual =. .. durante la declaración #include. Consulte aquí para ver más detalles sobre la directiva de inclusión de archivos frente a virtuales.

2
Alex 25 jul. 2020 a las 02:02