我有一個帶有幾個輸入字段的網頁。我想要做的是,如果我這次選擇了其中一個域,那麼網頁應該在下次加載時自動關注相同的內容。將屬性添加到(輸入)字段,以便下次通過Cookie加載
我可以想象餅乾是要走的路。我不明白的是,我應該如何通過cookie向特定輸入字段添加屬性,例如「自動對焦」。
任何幫助將是偉大的。 TIA, 尼基爾
我有一個帶有幾個輸入字段的網頁。我想要做的是,如果我這次選擇了其中一個域,那麼網頁應該在下次加載時自動關注相同的內容。將屬性添加到(輸入)字段,以便下次通過Cookie加載
我可以想象餅乾是要走的路。我不明白的是,我應該如何通過cookie向特定輸入字段添加屬性,例如「自動對焦」。
任何幫助將是偉大的。 TIA, 尼基爾
您可以在輸入字段的名稱(或ID)存儲在cookie,則在<head>
,重寫功能setFocusOnLoad()
將焦點設置所需的元件上。爲了將最新的輸入字段存儲在cookie中,每次用戶選擇不同的輸入字段時,您可能必須在cookie中設置值。
下面是如何將焦點設置特定元素的例子:http://www.w3schools.com/js/tryit.asp?filename=tryjs_focus
基於由@Nathan華萊士給出的主意,我解決我自己的問題以不同的方式。
首先,我注入一個javascript通過
$(this).click(function(event) {
if($(event.target).is(":input")){
event.preventDefault();
document.location = "this-clicked:"+window.location;
// this is the function which writes the cookie
writeCookie(event)
}
});
我可以寫功能writeCookie(在問題補充輸入字段到一個文件中的cookie)本身上面的if語句裏面,但我喜歡保持不同事情分開。否則,writeCookie功能如下
function writeCookie(event) {
var expirationTime = new Date();
expirationTime.setTime(expirationTime.getTime() + EXPTIME);
document.cookie="focusOnMe=" +
escape(event.target.id) +
"; expires="+expirationTime.toGMTString();
}
這就是本屆會議。 現在,每次頁面加載時間,我檢查如果cookie存在
function readElementFromCookie() {
var allcookies = document.cookie;
// Get all the cookies pairs in an array
cookiearray = allcookies.split(';');
// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++){
name = cookiearray[i].split('=')[0];
value = cookiearray[i].split('=')[1];
if (name == "focusOnMe") {
return value;
}
}
}
如果這個函數返回一個非空值,然後我通過
ELEM = readElementFromCookie();
if (ELEM) {
javascript: document.getElementById("ELEM").focus();
}
使網頁焦點的元素上
當然,在同樣的情況下,我可以讓早先設置的cookie過期,以保持流量只有一種方式。
Nikhil