1

如果满足某些条件,我有一个页面 X,它应该有指向页面 A、B 和 C 的超链接。我希望做的是(在正在构建页面的服务器上)修剪不符合我条件的超链接。我希望这种结构的方式是,在为 X 上的链接构建 HTML 的 Javascript 函数中,评估存在于 A、B 和 C 中的函数,其中返回真/假,它告诉我是否不包括链接。

到目前为止,我已经编写了它,以便 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;
}

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

4

2 回答 2

1

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

于 2011-09-19T21:31:19.480 回答
1

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

尝试

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;

}

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

我用这篇文章来寻找灵感

于 2011-09-19T23:48:21.100 回答