我有一个页面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;
}
你显然需要小心文件名的路径。
我用这篇文章作为灵感
我不太明白你想做什么,但如果你是基于动态数据命名函数,似乎你可以后退一步,重写函数,通过参数等动态工作。你能贴一些代码吗?