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?這個函數做什麼? –

相關問題