0

我的问题是关于结合 HTML5 功能 ContentEditable 和 localStorage 的代码。

这是我的两个 JS 函数,一个用于将用户编辑存储在表格单元格中,另一个用于获取值并将其传递给表格单元格。

<script type="text/javascript">

function storeUserEdit(id) {
    var pre_value = document.getElementById(id).innerHTML;
    localStorage.setItem("userEdit",pre_value);
    }
function applyUserEdit() {  
    if (localStorage.getItem("userEdit")){
    var new_value = localStorage.getItem("userEdit");
    }
    document.getElementById('prjSch_row1_col1').innerHTML = localStorage.getItem("userEdit");
} 
</script>

这里嵌入了正文内容中的这两个函数:

...

<td id="prjSch_row1_col1" contenteditable="true" onkeyup="storeUserEdit(this.id)" >
</td>
<script>applyUserEdit()</script>

...

我想将它用于我的 HTML 页面中的许多表格单元格,以及如何将 prjSch_row1_col1 替换为 id 并将其传递给函数 getUserEdit();

多谢!

4

1 回答 1

0

你是否试图做这样的事情。因为您在问题中提到的内容不足以让我思考答案。您何时需要触发applyUserEdit()功能,页面加载或...

请让我知道足够的细节。

16/08/2013 >

非常抱歉耽搁了!请找到我在 Firefox 中测试的以下代码。这是你想要的行为吗。请不要在提琴手中测试。它在那里不起作用,我不知道为什么。

`

<head>
    <script type="text/javascript">
        function storeUserEdit(id) {
            var pre_value = document.getElementById(id).innerHTML;
            localStorage.setItem("userEdit",pre_value);
            localStorage.setItem('userEditControl', id);
        }
        function applyUserEdit(id) {
            var new_value = '';
            if (localStorage.getItem("userEdit")){
                new_value = localStorage.getItem("userEdit");
            }
            if(localStorage.getItem('userEditControl') === id){
                document.getElementById(id).innerHTML = localStorage.getItem("userEdit");
            }
            //this is just to check whether the code is working
            document.getElementById('log').value = document.getElementById('log').value + '\n' + localStorage.getItem("userEdit");
        }
    </script>
</head>
<body>
    <table border="1">
        <tr>
            <td>User Name:</td>
            <td id="uname" contenteditable="true" onkeyup="storeUserEdit(this.id)" onblur="applyUserEdit(this.id)">value...</td>
        </tr>
        <tr>
            <td>Password:</td>
            <td id="pword" contenteditable="true" onkeyup="storeUserEdit(this.id)" onblur="applyUserEdit(this.id)">value...</td>
        </tr>
    </table>
    <textarea multiline="true" id="log"></textarea>
</body>

`

如果您有任何问题,请告诉我...

于 2013-08-14T06:16:56.090 回答