1

我有一个应该,如果某些条件得到满足有超链接的网页A,B和C页面X调用函数。我希望做的事情是(在服务器上正在构建页面)删除不符合我的条件的超链接。我希望这种结构的方式是,在为X上的链接构建HTML的Javascript函数中,评估存在于A,B和C中的函数,其中返回true/false,它告诉我是或不包括链接。经典ASP与服务器端的JavaScript,在不同的文件

我都写过到目前为止,以便相应功能的X动态拼凑的名字以A,B和C基于离他们的名字叫并使用eval。问题在于eval似乎并不知道函数的位置。

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

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

,我怎么可以让EVAL任何建议找到该服务器上的功能表示赞赏。

MJ

[编辑]

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)。

+0

的<! - #包括 - >语法是IIS的功能,而不是一个JScript一个......所以你会发现a.asp的全部内容被纳入你的脚本,或者(更可能)你会发现它根本不起作用... –

回答

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; 

}

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

我用this article灵感

1

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

+0

我已经发布了一些代码。 –

+0

因为它是服务器端,所以您必须回发才能运行脚本。 a.asp是否具有JavaScript或服务器端JavaScript?这个函数做什么? –

相关问题