2010-10-31 29 views
0

問候所有 我想知道如果有可能的,我想調用JavaScript,但不從JSP(從服務器端) 類似的控制器 意義的響應發送一些JavaScript代碼:是否可以調用javaScript服務器端?

var d = new Date(); 
var gmtHours = -d.getTimezoneOffset()/60; 
var tz=gmtHours; 
window.location="page?tz="+tz; 

你認爲傢伙怎麼樣?

+1

有幾種方法。確切的答案取決於功能要求。請詳細說明。你試圖達到/解決什麼? – BalusC 2010-10-31 11:07:22

+0

我有一個記住的用戶可能試圖訪問應用程序中的任何頁面,並且我想在訪問所需的頁面之前檢測他的時區,我有一個攔截器在訪問所需頁面之前攔截此用戶。 – 2010-10-31 11:21:57

+0

ping在這裏....? – 2010-10-31 12:01:27

回答

0

有兩個部分答案:

執行JavaScript時,答案可以從服務器返回。要做到這一點,你可以在HTML wrtite一個Javascript,像

<script> 
    alert("This code just executed"); 
</script> 

通常人們有這樣的事

<script> 
    function init() { 
    document.getElementsByTagName('input')[0].focus();" 
    } 
    window.onload = init; 
</script> 

它將執行你的函數Windows加載時。

它看起來像你想知道你正在顯示結果的用戶的時區。如前所述,HTTP標頭沒有這些信息,因此您需要將其提交或存儲爲用戶首選項。 如果您不想存儲它,則需要將其添加到每個提交或URL中。通過這種方式,您將始終在服務器端擁有時區,並且不需要執行2次往返。

工作流可能如下所示: 1.用戶提交表單或單擊鏈接 - > 2.在服務器端形成結果 - > 3.在客戶端顯示結果。

看起來像是想顯示特定於時區的日期/時間。如果您使用ajax向客戶端發送數據,則可以在步驟3之前使用JavaScript獲取數據,並根據您的偏好進行更改。 如果要在服務器端執行所有格式化,則需要在步驟1中提交原始請求的時區。 您可以再添加2個步驟1.2提交時區請求作爲對用戶操作的響應。 1.3使用javascript重新提交帶時區信息的請求。這不是最佳的,但可以工作。

+0

非常感謝很多人的幫助解釋。 – 2010-11-02 11:18:35

0

我對這個問題還不是很清楚。但是當你從服務器返回響應時,你要求調用javavscript,而不是使用AJAX並在回調中進行處理。

如果您想訪問時區而不是其他方式將其作爲參數右側的一部分作爲請求參數本身發送。

+0

我想在加載特定頁面之前獲取用戶時區(意思是在頁面的獲取請求中) – 2010-10-31 14:05:33

+0

我們在其中一個項目中遇到了類似的問題。 Http負載(包括頭文件)默認不包含時區信息。所以我們在需要的時候發送時區參數作爲請求的一部分。如果您在應用程序中有明確的入口點,請將這些參數作爲來自這些頁面的請求的一部分發送。 – lalit 2010-10-31 14:10:27

相關問題