如果我理解正確你:你將信息輸入到一個頁面上的表單,然後向前導航,但是當你按下背面的信息沒有了嗎?
我不知道在Firefox中行爲的原因,但是解決方法很簡單且很髒:將參數保存在URL或URL哈希中。我更喜歡將數據存儲在散列中。
您可以在這兩個函數拋出:
// this function takes in your URL and creates and object with key/value pairs you can read
function readFromURLHash(url) {
var pairObject = {};
var pairs = url.substring(url.indexOf('?') + 1).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
pairObject[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
return pairObject;
}
// whatever parameters you want
function saveInHash(parameter1, parameter2, parameter3, parameter4, parameter5){
if(typeof errorMessage === 'undefined')
errorMessage = "";
window.location.hash = "#?parameter1="+parameter1+"¶meter2="+parameter2+"¶meter3="+parameter3+"¶meter4="+parameter4+"¶meter5="+parameter5;
}
所以,在你走之前到另一個頁面(或任何時候,一個輸入字段是模糊的),保存參數到散,那麼,作爲在onload的一部分(或jQuery的.ready()函數)在URL中讀取並填充字段。
$(document).ready(function(){
// read in url
var savedData = readFromURLHash();
// populate field
$('#someInputField').val(savedData.someInputField);
// or with angular
$scope.someInputFieldModel = savedData.someInputField;
});
這是一個正常的行爲。你點擊一個鏈接並復出,並且你希望所有的表單域都填入你輸入的內容?問題在於你如何在網址之間分享數據。 cookie,localStorage,會話等。 – allenhwkim
是的,我期待它,到目前爲止,當我不使用AngularJS時,我從來不必擔心它。我猜瀏覽器現在這樣做,我沒有什麼可以用cookies,本地存儲或會話編碼... –
感謝您的更新。當你設置自動完成=「關閉」時,我使用Chrome和AngularJS的事件做了同樣的事情,當你回來時它不會填寫表單。你可以在這裏測試,http://jsfiddle.net/ta8kZ/ – allenhwkim