簡體   English   中英

如何在整個struts項目中僅對1個站點重新啟用自動完成支持?

[英]How can I reenable autocomplete support for just 1 site in my whole struts project?

由於我幾天來一直試圖解決這個問題,因此我想給你們一個機會。 情況:

我們正在運行一個帶有Java Server Pages和Struts后台的SAP Shop。 我們必須使用以下命令禁用HTML標頭可設置的緩存:

response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");

現在,我想做的事情對我們來說似乎是一個簡單的任務,但結果卻比我們預期的更加科學。

我們只想為登錄頁面打開IE的自動完成功能。 我和我的同事嘗試的是簡單的方法,例如將標頭值重置為各種“應該緩存”的值,例如“ public”值,明天或某日都將到期。 IE6及更高版本中的自動完成框都沒有給我們任何幫助。

有人知道Struts系統中的“僅一頁”打開緩存的方法嗎?

我認為自動完成與緩存響應標頭沒有任何關系。 默認情況下,自動完成功能是打開的,可以使用autocomplete="off"在特定的表單字段上將其禁用。 如果您在登錄表單字段中具有此類屬性,則只需將其刪除。

請參閱如何禁用Web表單字段/輸入標簽上的瀏覽器自動完成功能?

好吧,現在我自己找到了答案。 當您談論它時似乎更容易,對嗎?

因此,問題在於,我們使用了javascript函數來提交登錄表單網站。 但這不是您應該怎么做(例如微軟)。 幾分鍾前,我聽到了一次技術廣播,內容是有關Internet Explorer依靠可疑按鈕來實現瀏覽器功能的。

聽說答案在我腦海中很清晰。 我要提交一個按鈕。 由於我們(必須使用!)使用Javascript提交,導致按鈕僅是樣式化的div,因此我不得不調用按鈕單擊以向IE表示我們進行了“官方”回發。

那是代碼:

function submitLoginForm()
{
    var hiddenSubmitBtn = document.getElementById("hiddenSubmitButton");
    if(hiddenSubmitBtn.click) {
        hiddenSubmitBtn.click();
    } else {
        document.loginform.submit();
    }
    return false;
}

現在可以正常工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM