带有服务器端Javascript的经典ASP,在不同文件中调用函数

带有服务器端Javascript的经典ASP,在不同文件中调用函数,javascript,asp-classic,serverside-javascript,server-side-includes,server-side-scripting,Javascript,Asp Classic,Serverside Javascript,Server Side Includes,Server Side Scripting,我有一个X页,如果满足某些条件,它应该有指向a、B和C页的超链接。我希望做的是(在构建页面的服务器上)删掉不符合我条件的超链接。我希望它的结构是,在为X上的链接构建HTML的Javascript函数中,评估a、B和C中存在的函数,其中返回true/false,告诉我是否包含该链接 到目前为止,我已经编写了这样一个函数,X根据它们的名称动态地将适当函数的名称拼凑在一起,以便在A、B和C中调用,并使用eval。问题是eval似乎不知道函数的位置 由于这是服务器端的,我不相信我可以使用标记,因为我认为

我有一个X页,如果满足某些条件,它应该有指向a、B和C页的超链接。我希望做的是(在构建页面的服务器上)删掉不符合我条件的超链接。我希望它的结构是,在为X上的链接构建HTML的Javascript函数中,评估a、B和C中存在的函数,其中返回true/false,告诉我是否包含该链接

到目前为止,我已经编写了这样一个函数,X根据它们的名称动态地将适当函数的名称拼凑在一起,以便在A、B和C中调用,并使用eval。问题是eval似乎不知道函数的位置

由于这是服务器端的,我不相信我可以使用标记,因为我认为这是用于客户端代码的。我不想在顶部使用,因为我希望X与A、B和C松散耦合

这是在IIS上运行的ASP页面中的Javascript

任何关于如何让评估人员在服务器上定位功能的建议,我都非常感谢

乔丹

[编辑]

function shouldLink(filename)
{
    filename = "a.asp";
    var splits = filename.split(".");
    var file = splits[0].toUpperCase() + "_ShouldLink()";  // A_ShouldLink() function name built here

    var exec = "<!--#include virtual=\"a.asp\" -->";
    exec += "eval( " + file + " );";

    try{
            return eval( exec );
    } catch( err ){

    }

    return true;
}
函数shouldLink(文件名)
{
filename=“a.asp”;
var splits=filename.split(“.”);
var file=splits[0]。toUpperCase()+“\u ShouldLink()”;//在此处生成的函数名
var exec=“”;
exec+=“eval(“+file+”);”;
试一试{
返回eval(exec);
}捕捉(错误){
}
返回true;
}

基本上,在这里的eval中,我希望调用名为A_ShouldLink()的函数(它位于A.asp中)。

我不太明白您想要做什么,但是如果您是基于动态数据命名函数,似乎可以退一步,重写函数以通过参数动态工作,等等。您是否有可能发布一些代码?

我可能错了,但我认为您不能以这种方式使用include文件。我从未见过以这种方式动态添加include文件

试一试

}

显然,您需要注意文件名的路径


我使用灵感

是因为它是服务器端的,为了运行脚本,您必须发回。asp有JavaScript还是服务器端JavaScript?该函数做什么?语法是IIS功能,而不是JScript功能。。。因此,此时您可能会发现a.asp的全部内容都包含在脚本中,或者(更有可能)您会发现它根本不起作用。。。
function shouldLink(filename)
{
    filename = "a.asp";
    var splits = filename.split(".");
    var file = splits[0].toUpperCase() + "_ShouldLink()";  // A_ShouldLink() function  name built here

   Server.Execute(fliename) 
   var exec =  "eval( " + file + " );";

   try{
          return eval( exec );
   } catch( err ){

   }

   return true;