-2

would like to retrieve and display data which is stored in the local storage. I tried displaying it through many ways like console.log, alert, displaying in css. but none of the method displays the retrieved data from the local storage.

Code:

<!DOCTYPE html>

<html>
<head>
<title>Pricing </title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://github.com/douglascrockford/JSON-js/raw/master/json2.js"></script>
<meta http-equiv="refresh" content="10" />
<script>

      function requestCrossDomain(site, callback) {
      if (!site) {
          alert('No site was passed.');
          return false;
      }
      var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + site + '"') + '&format=xml&callback=?';
      $.getJSON(yql, cbFunc);
      function cbFunc(data) {
          if (data.results[0]) {
              data = data.results[0].replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '');
                  window[callback](data);
          } else throw new Error('Nothing returned from getJSON.');
      }
  }

      var url = 'https://www.emcsg.com/marketdata/priceinformation';

      requestCrossDomain(url, 'someFunction');



function someFunction(results){
var html = $(results);
var table = html.find(".view72PeriodsWrapper");



        var table_pre = html.find(".view72PeriodsWrapper").find(".previous").text();
        var table_cur = html.find(".view72PeriodsWrapper").find(".current").text();
        var table_fut = html.find(".view72PeriodsWrapper").find(".future").text();

        $('#loadedContent').css("display","").html(table); 
        var jsonObject = JSON.stringify(table_pre);
        var jsonObject2 = JSON.stringify(table_cur);
        var jsonObject3 = JSON.stringify(table_fut);


        jsonObject = jsonObject.concat(jsonObject2, jsonObject3);

        $('#json').text(jsonObject);

        window.localStorage.setItem('jsonobject', jsonObject);

        var retrievedObject = window.localStorage.getItem('jsonobject');
        var data = JSON.parse(retrievedObject);
        console.log(data); //The data I want to display

}       

</script>
</head>
<body>
<br><br>
<div id="result"></div>
<div id="loadedContent"></div>
<div>JSON OBJECT <br></div>
<div id ="json"></div>

<div id ="data"></div>
</body>
</html>

What should i do to display the data?

P.S: The webpage is coded to automatically refresh every 10 seconds. So the json object should be stored in the local storage every 10 seconds. I wanted to display it to make sure that it is stored as per my requirements

Sandy.Arv
  • 607
  • 10
  • 34

3 Answers3

1

Please use localStorage like below.

//To set a value in LocalStorage
localStorage.setItem('key', 'value');

//To get a value from LocalStorage
localStorage.getItem('key')
eltonkamami
  • 5,134
  • 1
  • 22
  • 30
0

I think you have wrong casing for localstorage.

window.localStorage.setItem('jsonobject', jsonObject);
brewsky
  • 607
  • 1
  • 9
  • 15
0

You are missing out the camel-case for localStorage here,

localstorage.setItem('jsonobject', jsonObject);

var retrievedObject = localstorage.getItem('jsonobject');

Have a look at Storing Objects in HTML5 localStorage to start with local storage

Community
  • 1
  • 1
Santhosh
  • 8,181
  • 4
  • 29
  • 56