无法在域中附加本地存储数据

时间:2018-01-08 00:19:29

标签: javascript storage local

我遇到了一个大问题,没有多少时间来解决它。我正在创建我的第一个移动应用程序,用于搜索大学项目(不是基于真实属性) 我尝试使用不同的键不起作用,我没有得到基础知识。 基本上我有一个Jquery移动应用程序,其中有许多外部页面都有属性的详细信息,这些页面具有相同的ID但在不同的文档上,当用户单击按钮进行保存时,我希望页面的标题和URL是保存在本地存储中,并由称为我的收藏夹的第三页检索。我遇到的问题是,当我进入每个页面并单击“保存”时,它会覆盖已存在于本地存储中的内容,并且似乎每个页面都有自己的存储空间,因此我的收藏页面始终只有一个收藏夹(最新的)一),而不是每次我点击保存时附加的收藏列表。这是我的代码:

f = myfunc3(x0)

(两页都有相同的代码) 这是我在脚本文件中的功能:

$(document).on(“pagecreate”,function(argument){

<div data-role="header" id="samplePlacePage_hd">
    <h4 id="hutRef">add#redHut456</h4>
</div>

<div data-role="main" id="samplePlacePage_cont">

    <div id="image">
        <a href="#"><img src="images/redhut.jpeg" height="200px" width="100%" alt="Hut"></a>
    </div>

    <div id="place_title">
        <p id="hutHeading">Stunning Red Hut in Central Red Beach</p>
    </div>
    <div>
        <h4 style="float: left;">Rent: $2950pw</h4>
        <h4 style="float: right;">Deposit: 5500</h4>
    </div>

})

请帮忙

由于

1 个答案:

答案 0 :(得分:1)

另外两个注意事项:尚未添加检查收藏夹,并允许用户在您网站的页面上打开多个标签页 - 添加一个页面作为收藏夹不应干扰添加其他页面作为收藏。不要忘记,如果本地存储项不存在,请创建一个新的:)

基本上我建议检索本地存储,检查重复项,更新并保存回本地存储,所有这些都发生在单击处理程序,E.G。通过重新排列代码并添加几行:

$(document).on("pagecreate",function () {
    document.getElementById('hutFav').onclick = function () {

        var favoritesPlaces = localStorage.getItem("favorites");
        var heading = document.getElementById('hutHeading').innerText;
        var ref = document.getElementById('hutRef').innerText;
        var refLink = ref.replace("add#","");
        var newFav = {
            title: heading,
            link: refLink
        };

        favoritesPlaces = favoritesPlaces || '[]';    // string
        favoritesPlaces = JSON.parse(favoritesPlaces); // array
        if( !favoritesPlaces.some( fave => fave.link === refLink)) {
            favoritesPlaces.push( newFav)
            console.log(favoritesPlaces);
            localStorage.setItem("favorites",JSON.stringify(favoritesPlaces));
        }
        else {
           console.log("already a favorite");
        }
    }
})

(测试)

请注意,在任何网页上清除localStorage都会清除网站上所有网页的内容。一旦清除,它在所有页面上清除,没有更多的收藏夹,任何页面都可以再次添加而不会重复。如果&#34;从收藏夹中移除此页面&#34;需要按钮,需要编写一个新功能。