三種不同的網頁有每次三個CONTENTEDITABLE區域(content1
,content2
,並content3
)。一個本地存儲的JavaScript在不同的頁面領域
每一個網頁鏈接到它使用本地存儲來存儲用戶的輸入,並在他們的迴歸再出現一個它的JavaScript。
當我更改一個頁面上的內容時,它會在同一個可編輯區域內的所有三個頁面中更改內容。
我希望每個頁面可以使用相同的腳本保存它是獨立於其他頁面自己的數據。
我已經嘗試添加網頁地址(URL)到本地存儲密鑰,讓每個頁面使用相同的腳本來存儲和檢索它自己的數據,但我不能得到它的工作。對JavaScript新手 - 感謝任何幫助。謝謝!
window.addEventListener('load', onLoad);
function onLoad() {
checkEdits();
}
// Get page location
var loc = encodeURIComponent(window.location.href);
// Add location to local storage key
function checkEdits() {
if (localStorage.userEdits1 != null) {
var userEdits1 = (loc + userEdits1);
document.getElementById('content1').innerHTML = localStorage.userEdits1;
}
if (localStorage.userEdits2 != null) {
var userEdits2 = (loc + userEdits2);
document.getElementById('content2').innerHTML = localStorage.userEdits2;
}
if (localStorage.userEdits3 != null) {
var userEdits3 = (loc + userEdits3);
document.getElementById('content3').innerHTML = localStorage.userEdits3;
}
};
document.onkeyup = function (e) {
e = e || window.event;
console.log(e.keyCode);
saveEdits();
};
function saveEdits() {
// Get editable elements
var editElem1 = document.getElementById('content1');
var editElem2 = document.getElementById('content2');
var editElem3 = document.getElementById('content3');
// Get edited elements contents
var userVersion1 = editElem1.innerHTML;
var userVersion2 = editElem2.innerHTML;
var userVersion3 = editElem3.innerHTML;
// Add page location to storage key
var userEdits1 = (loc + userEdits1);
var userEdits2 = (loc + userEdits2);
var userEdits3 = (loc + userEdits3);
// Save the content to local storage
localStorage.userEdits1 = userVersion1;
localStorage.userEdits2 = userVersion2;
localStorage.userEdits3 = userVersion3;
};
function clearLocal() {
if (confirm('Are you sure you want to clear your notes on this page?')) {
localStorage.setItem("userEdits1", "");
localStorage.setItem("userEdits2", "");
localStorage.setItem("userEdits3", "");
document.getElementById('content1').innerHTML = "";
document.getElementById('content2').innerHTML = "";
document.getElementById('content3').innerHTML = "";
alert('Notes cleared');
}
}
謝謝您的周到,詳細的回覆。代碼完全按照我的希望工作,並將幫助我學習很多東西。 – Steve