Как сохранить в localStorage из textarea? - PullRequest
1 голос
/ 25 октября 2011

Я пытаюсь сохранить адрес электронной почты, введенный в textarea, в localStorage. Я вижу заполнитель «ваш адрес Gmail» при загрузке страницы, но когда я ввожу значение и нажимаю «Сохранить», ничего не происходит. Я не вижу предупреждение или консоль, подтверждающую, что текст сохранен. Что я делаю не так?

<html>
<head><title>Extension Options</title></head>
<body>
<textarea id="user" style="margin-bottom: 4px; width: 250px; height: 20px">
</textarea><br />
<button id="save">Save</button>
<!--<button id="save">Clear</button>-->

<script type="text/javascript">

//check if "user" is in localStorage

if (localStorage["user"])
{
    var user = localStorage["user"] ;
    document.getElementById("user").value = user ;
    alert("you are already a user")
}
else
{
    document.getElementById("user").placeholder = "your gmail address" ;
    console.log("user no found in localStorage")
}

//save entered gmail address
document.getElementById("save").addEventListener
{
    "click", function ()
    {
        var user = document.getElementById("user").value ;
        //localStorage["user"] = user ;
        localStorage.setItem("user", user) ;
        alert("gmail id saved") ;
        console.log("gmail id saved")
    } , false
}

</script>
</body>
</html>

1 Ответ

10 голосов
/ 25 октября 2011

Ваша функция addEventListener используется неправильно. Это следует использовать так:

document.getElementById("save").addEventListener("click", function ()
    {
        var user = document.getElementById("user").value ;
        //localStorage["user"] = user ;
        localStorage.setItem("user", user) ;
        alert("gmail id saved") ;
        console.log("gmail id saved")
    } , false);

Документы MDN для element.addEventListener

Рабочая демонстрация с вашим кодом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...