2011-04-13 26 views
0

我有一個HTML按鈕的onClick應該調用兩個功能:JavaScript函數使用後面的代碼稱爲替代的onPageLoad的onclick

<input id="btnLogout" onclick="test();SaveAndNavigate('logoff.aspx');" type="button"> 

在功能測試()我只需要寫入/附加在一個.txt文件(在服務器端)用戶名。 txt文件是一個日誌文件,我想跟蹤當前用戶註銷的時間。

,功能測試是:

function test() 
{ 
<% 
    LogUserSession("User: "+ System.Web.HttpContext.Current.ApplicationInstance.Session.SessionID.CurrentUser +" logged out on: " + System.DateTime.Now); 
%> 
} 

當我加載網頁與按鈕,對頁面加載代替onClick事件立即執行的功能。 由於我需要實現的功能已經全部由codeBehind函數「LogUserSession」實現,所以我希望避免在可能的情況下開發jQuery Ajax Web服務或其他解決方案。

否則我該如何將文本信息追加到JavaScript的現有.txt文件中? 在此先感謝。

+0

感謝您的信息,它非常清晰:在代碼發送(一旦處理)到瀏覽器之前處理服務器功能。這就是它立即被解僱的原因。 我使用的是舊版軟件,因此我只能訪問客戶端文件(.aspx,.ascx),因此無法編輯「SaveAndNavigate」功能。此外,當調用Logoff.aspx時,會話已被軟件清除,因此我無法再獲取用戶名。 因此我認爲我必須實現一個簡單的Web服務並使用jQuery Ajax訪問它。 感謝您的幫助! – Francesco 2011-04-14 06:12:27

回答

0

你LogUserSession()是正在生成的頁面(包含您所提供的提取物),當一個服務器端的功能,多數民衆贊成得到執行 - 在服務器端。它不會將其作爲頁面onPageLoad事件的一部分(即在客戶端)執行。

基本上你想要的是從logoff.aspx調用LogUserSession()函數。

如果你的SaveAndNavigate()函數有效,那麼你的btnLogout應該就是你需要的。如果你不想使用AJAX進行調用,你需要有一個提交給logoff.aspx的表單。或者甚至只是一個鏈接,如果它處理GET請求。

0

如果我正確理解你,它是你想運行的服務器端功能。從客戶端開始,但由於服務器在將代碼發送到瀏覽器之前先解析代碼,它會在頁面到達瀏覽器之前發生。我認爲阿賈克斯是你最好的選擇。

0

當頁面生成時,服務器上運行<%%>之間的代碼。這實際上是在瀏覽器事件獲取頁面之前發生的。

我會建議您將註銷的登錄移動到「logoff.aspx」頁面。這種方式永遠不會被遺忘。這樣做的

0

一種方式是(未驗證):

1)有一個名爲Logout.aspx頁面,並在頁面加載事件調用/執行LogUserSession方法的功能。

2)的頁面上添加一個img元素與寬度= 0和高度= 0

3)在試驗javascript函數分配在IMG到Logout.aspx的src屬性。

即:

<img id="logoutImg" width=0 height=0 style="display:none"/> 
. 
. 
. 
function test(){ 
document.getElementById("logoutImg").src = ("Logout.aspx?_rnd" + new Date()); 
} 
相關問題