Jump to content
Sign in to follow this  
Marcos_imasters

localStorage transferir dados entre abas

Recommended Posts

Bom dia,

 

Programadores estou com um problema estava usando o localStorage em um player html5 em meu site so que quando eu clico para abrir um outro pagina peco o localStorage estava precisando de transferir os dados localStorage entre as abas tentei usar esse scprit

var sessionStorage_transfer = function(event) {
  if(!event) { event = window.event; } // ie suq
  if(!event.newValue) return;          // do nothing if no value to work with
  if (event.key == 'getSessionStorage') {
    // another tab asked for the sessionStorage -> send it
    localStorage.setItem('sessionStorage', JSON.stringify(sessionStorage));
    // the other tab should now have it, so we're done with it.
    localStorage.removeItem('sessionStorage'); // <- could do short timeout as well.
  } else if (event.key == 'sessionStorage' && !sessionStorage.length) {
    // another tab sent data <- get it
    var data = JSON.parse(event.newValue);
    for (var key in data) {
      sessionStorage.setItem(key, data[key]);
    }
  }
};

// listen for changes to localStorage
if(window.addEventListener) {
  window.addEventListener("storage", sessionStorage_transfer, false);
} else {
  window.attachEvent("onstorage", sessionStorage_transfer);
};


// Ask other tabs for session storage (this is ONLY to trigger event)
if (!sessionStorage.length) {
  localStorage.setItem('getSessionStorage', 'foobar');
  localStorage.removeItem('getSessionStorage', 'foobar');
};

sem sucesso alguem pode me ajudar desde ja agradeço

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By carloselsb
      Estou com um projeto em que após o login, carrego todos os dados primordiais do usuário em um localStorage. Uma vez logado, esse objeto JSON armazenado como string criptografada pode ser acessado offline, inclusive. Porque trata-se de um projeto web embarcado em um webview Java Android. Pois bem. Estou com um cliente que excedeu esse limite por ter mais de 30K linhas de informação especifica que é transformada em string e posteriormente criptografada. Lógico que isso excedeu o limite do localStorage.
       
      localStorage.setItem('corexmr', GARRA.Const.Criptografia.set(JSON.stringify(GARRA)));
      Minha primeira dúvida foi saber se o limite era empregado a unidade do localStorage usado ou se esse limite é do uso do LS no projeto. Tirei essa duvida porque criei uma função de empilhamento de LS, monitorando o limite distribuido em cada. Então, se seu fizesse um armazenamento, eu poderia realizar um stringfy, criptografar, mensurar o tamanho e dividir pelo limite em storages como 'core', 'core1', 'core2', ...
       
      GARRA: { Methods: { localStorage: { limitcharacter: 5000000, set: function(nome, obj) { var objString = GARRA.Const.Criptografia.set(JSON.stringify(obj)); if (GARRA.Methods.localStorage.limitcharacter > objString.length) { localStorage.setItem(nome, objString); } else { var calc = (objString.length / GARRA.Methods.localStorage.limitcharacter), i = 0, start = 0; while (i <= calc) { localStorage.setItem((i === 0) ? nome : nome + i.toString(), objString.substr(start, GARRA.Methods.localStorage.limitcharacter)); start = (start + GARRA.Methods.localStorage.limitcharacter); i++; } } }, load: function(nome) { var end = false, i = 0, content = ''; while (!end) { if (localStorage.getItem((i === 0) ? nome : nome + i.toString()) == null) { end = true; } else { content += localStorage.getItem((i === 0) ? nome : nome + i.toString()); } i++; } return JSON.parse(GARRA.Const.Criptografia.load(content)); } } } }
      Mas mesmo assim cheguei ao limite. 
      Pergunta:
      - Existe uma solução alternativa, para quem quer continuar a armazenar localmente no cliente sob regime de persistência?
       
       
    • By jpivinhema
      boa tarde galera...tenho uma pagina com um button que faço a gravação de dados em locastorage... onde em outra pagina quero o retorno dos dados gravados...os dados estao retornando com esse codigo.
       
      esse script esta em outra pagina
       
       
      <script>
      for(i=1; i<=99; i++) // verifica até 99 dados registrados na localStorage
       {
           var prod = localStorage.getItem("pag" + i + ""); // verifica se há recheio nesta posição.
           if(prod != null)
           {    
               // exibe os dados da lista dentro da div itens...esse codigo esta retornando os valores em texto
               document.getElementById("itens").innerHTML += localStorage.getItem("pag" + i) + " x ";   //isso é um link ex: santos.html
               document.getElementById("itens").innerHTML += localStorage.getItem("titulo" + i) + " x ";  //isso é um titulo ex: santos
               document.getElementById("itens").innerHTML += localStorage.getItem("tag" + i) + "<hr>";  //isso é uma tag  ex: estado
       
      // eu queria que o retorno fosse em forma de uma li como esta que esta a baixo
       
      <li class="topcoat-list__item"><a href="santos.html">santos</a><br /><span style="font-size:11px;">estado</span></li>
       
       
      // tentei fazer dessa forma que esta a baixo mas não esta retornando os dados do DB, o que pode estar errado??
      // alguem pod me ajudar por favor
              
       
              document.getElementById("itens").innerHTML += "<li class='topcoat-list__item'>" + "<a href='localStorage.getItem('pag' + i)'>" + "localStorage.getItem('titulo' + i)" + "</a><br /><span style='font-size:11px;'>" + "localStorage.getItem('tag' + i)" + "</span></li>";

           }
       }
      </script>
       
       
       
      desde ja muito obrigado pela ajuda!!

    • By Mi7chael
      Olá pessoal.
      Estou com uma dúvida lógica, que não consigo resolver.
      Tenho um aplicativo rodando em webview, portanto, usando html/javascript.
      Quero de alguma forma armazenar preferências do usuário no próprio celular, por exemplo, cor de fundo da página, imagens já vistas etc.
      Como é algo que vai ser usado exclusivamente por cada usuário, em seu celular, não quero armazenar isso no servidor. 
      Seguindo o exemplo do fundo da página. Eu precisaria, por exemplo, de um local só pra armazenar uma variável. Ela até já pode existir, tipo, tendo um valor padrão, mas que desse pra modificar quando o usuário quisesse. 
      Já tentei usar cookies e localstorage, mas não funcionou. O localstorage não é compatível com a versão do navegador padrão.
      Alguém sabe o que eu poderia fazer? Pra mim, o ideal seria ter um arquivo txt que eu pudesse modificar. Ou um xml, algo assim.
      Desde já, obrigado.
    • By Ladinilson Sousa
      Bom dia Senhores,
       
      Desculpem participar do grupo sem sequer entender sobre JavaScript por programo em outra linguagem (xHarbour/Fivewin) mas queria pedir um favor aos senhores se possível caro.
       
      Desenvolvi uma rotina para abrir o site do TRF1 automaticamente e em uma determinada aba do mesmo mas a mesma (aba) só mostra as informações depois de  um click em cima dela.
      A página abre desta forma...
      https://ibb.co/dpy50R
       
      Após o click em cima de "Partes" que a mesma mostra as informações...
      https://ibb.co/i4e85R
       
      Em "Inspecionar Elemento" no próprio site...
      https://ibb.co/mRS4c6
       
      E ampliando este mesmo logo abaixo teria a informações que preciso...
      https://ibb.co/gegzC6
       
      Teria como ter este Click em cima desta aba e se possível captar estas informações em um arquivo TXT por exemplo?
       
      Para chegar até as telas usem o site
      https://processual.trf1.jus.br/consultaProcessual/numeroProcesso.php?secao=TRF1
      Número do processo...
      02262972420154019198
       
      Um exemplo de uso na minha linguagem, seria para dar um Click automaticamente em um botão como em...
      oActiveXdo:All:Item("consultar",0):Focus()
      oActiveXdo:All:Item("consutar",0):Click()
       
      E inserir um valor a um campo...
      oActiveXdo:All:Item("proc",0):Value := "02262972420154019198"
       
      Desculpem a falta de algumas informações e o desconhecimento da linguagem a de antemão, agradeço a atenção dos senhores.
      Obrigado
       
       
       
    • By Cristiano Severino
      Olá pessoal,
      Gostaria de uma orientação de vocês, como faço para que as telas abram em abas dentro do sistema?
      Exemplo: Clico na opção cadastro ele abre em uma aba, clico em produto abre em outra.
      Form1 , Form2....
       
       
       

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.