javascript - ContentEditable HTML5 localStorage 有时不起作用

标签 javascript jquery ajax html

我尝试将此演示中的“ContentEditable”用于我网站的 3 个 div:

http://html5demos.com/contenteditable

我还从这个演示中为事件监听器加载了 h5utils.js

例如,其中一个 div 看起来像这样:

<div class="statsWrapper">
    <header id="met30" contenteditable="true" class="Tester">
</header>
    <p class="statsmonth_tester">
       Tester Overall
    </p>
</div>

我在 html 中的脚本

        <script>
        //Script for saving Content Sales Report to local storage//

        var editableTester = document.getElementById('met30');
        var editableSubscriber = document.getElementById('met32');
        var editableReadOnly = document.getElementById('met35');

        addEvent(editableTester, 'blur', function() {
            localStorage.setItem('Tester', this.innerHTML);
            document.designMode = 'off';                
        });

        addEvent(editableSubscriber, 'blur', function() {
            localStorage.setItem('Subscriber', this.innerHTML);
            document.designMode = 'off';
        });

        addEvent(editableReadOnly, 'blur', function() {
            localStorage.setItem('ReadOnly', this.innerHTML);
            document.designMode = 'off';
        });

        addEvent(editableTester, 'focus', function() {
            document.designMode = 'on';
        });
        addEvent(editableSubscriber, 'focus', function() {
            document.designMode = 'on';
        });
        addEvent(editableReadOnly, 'focus', function() {
            document.designMode = 'on';
        });

        if (localStorage.getItem('Tester')) {
            editableTester.innerHTML = localStorage.getItem('Tester');
        }
        if (localStorage.getItem('Subscriber')) {
            editableSubscriber.innerHTML = localStorage.getItem('Subscriber');
        }
        if (localStorage.getItem('ReadOnly')) {
            editableReadOnly.innerHTML = localStorage.getItem('ReadOnly');
        }               
    </script>

问题是:

我总是能够编辑 div 但有时 localStorage 在编辑它们后不会更新我的 div 的新值。 重新加载窗口后,所有值都是旧值。但这很奇怪:如果我在新窗口中打开代码,有时它会起作用。有任何想法吗? (对不起我的英语)

最佳答案

是否在 DOM 完全加载后运行脚本?有很多方法可以实现这一目标。但最简单的可能是使用 jQuery (document).ready(//here comes your code)

关于javascript - ContentEditable HTML5 localStorage 有时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14715017/

相关文章:

javascript - 我想知道 jquery 的委托(delegate)或 on(for delegate) 是如何工作的

javascript - 通过引用对象和键作为字符串来获取数组/对象值

javascript - 多个按钮调用相同的功能并执行不同的方法

javascript - 在nodejs上延迟消息rabbitmq

javascript - 无法使用通过 ng-if 创建的子作用域设置父变量

jquery - Ajax Select,使用 select 从数据库中获取数据

javascript - XMLHttpRequest 获取具有动态内容的 DOM

php - 如何使变量可从 AJAX/php 查询脚本中单击

javascript - 保存 periodicalupdater 返回的值

java - Ajax 回调不起作用。发送请求后没有任何反应