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

Classic ASP with Server-Side Javascript, calling function in a different file

本文关键字:文件 函数 调用 服务器端 Javascript 经典 ASP      更新时间:2023-09-26

我有一个页面X,如果满足某些条件,应该有超链接到页面a, B和C。我希望做的是(在服务器上的页面正在建设)是修剪出不符合我的条件的超链接。我想要结构化的方式是,在Javascript函数中,它正在为X上的链接构建HTML, eval存在于a, B和C中的函数,其中返回true/false,它告诉我是否包含链接。

到目前为止,我已经编写了

,以便X根据A、B和C的名称动态地将要调用的适当函数的名称拼凑在一起,并使用eval。问题是eval似乎不知道函数的位置。

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

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

关于如何使eval在服务器上定位函数的任何建议都是值得赞赏的。

乔丹[编辑]

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;
}

基本上在eval这里,我想要调用名为A_ShouldLink()的函数(它驻留在a.asp中)

我可能是错的,但我不认为你可以用这种方式使用包含文件。我从来没有见过以这种方式动态添加include文件。

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;

}

你显然需要小心文件名的路径。

我用这篇文章作为灵感

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