Diogo Dias Posted June 3, 2013 at 11:42 AM Report #510667 Posted June 3, 2013 at 11:42 AM Boas a todos. O meu problema é fácil de explicar, mas até agora difícil de resolver para mim. Eu basicamente tenho uma variável que contém o idioma da aplicação. Quando escolho num select um novo idioma, altero o valor da variável e depois faço refresh da página. O problema é que ao fazer refresh à página, perco o valor da minha variável e não sei qual é o idioma corrente. Já tentei meter a variável como global usando o window, mas mesmo assim ela faz reset. O que encontrei mais na net foi para usar variáveis de sessão. Mas para isso teria de usar PHP ou ASP ou outras linguagens. Não existe nenhuma forma de usar variáveis de sessão locais em Javascript? Talvez seja também importante referir que estou a usar HTML e Javascript, mas a aplicação será feita para com o objectivo de funcionar em PhoneGap, ou seja, dispositivos com sistema Android.
I-NOZex Posted June 3, 2013 at 12:15 PM Report #510675 Posted June 3, 2013 at 12:15 PM guarda numa cookie 1 Report B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Diogo Dias Posted June 3, 2013 at 01:22 PM Author Report #510687 Posted June 3, 2013 at 01:22 PM (edited) O problema é que sou totalmente novo nisto e não consegui ainda fazer uma coockie em Javascript. Todos os sites que encontrei sobre criar coockies em Javascript, tentei fazer com uma pequena página em HTML, mas nunca consegui pôr a funcionar. Se me pudesses dar umas ideias de como é o código para isso agradecia. Ok, encontrei um bom site que explica tudo. Pode ser que acabe por me safar com isto. Obrigado pela ajuda 😉 Ok deparei-me com uma situação bastante estranha... O site que antes referi é este --> http://www.w3schools.com/js/js_cookies.asp Quando meto para testar o código no site, ele funciona perfeitamente. Mas quando meto esse código (sem mexer um único caracter) no notepad e crio uma página HTML de teste, ele não funciona. O que acontece é que a cookie fica sempre vazia. Isto não tem lógica nenhuma do meu ponto de vista. Edited June 3, 2013 at 02:19 PM by Diogo Dias
I-NOZex Posted June 3, 2013 at 04:07 PM Report #510713 Posted June 3, 2013 at 04:07 PM (edited) usas o notepad puro? (bloco de notas do windows) usa antes o notepad++ ou pspad (ambos bons editores de codigo e gratuitos) e guarda com a codificação utf8 without BOM nao sei que browser usas, para o firefox recomendo o addon Cookies Manager +, caso uses o chrome decerteza que tens alternativas, procuras na store por cookies, e verifica se defacto a cookie não é criada, atraves do addon (extra) que usares no entanto pedia-te para deixares aqui o codigo html que tens, pode ter-te escapado algo. Edited June 3, 2013 at 04:08 PM by I-NOZex 1 Report B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Diogo Dias Posted June 4, 2013 at 07:41 AM Author Report #510812 Posted June 4, 2013 at 07:41 AM O browser em que estou a testar é o Google Chrome. Mas testo também um dispositivo com android para me aproximar mais de numa situação real. Quando fui correr a aplicação em android, ele também não me guardava as cookies. Eu testo isto no Google Chrome, mas se não funcionar no browser e funcionar em android, não tem problema nenhum. A aplicação tem como único destino os dispositivos com android. Eu disse notepad porque foi apenas copiar o código daquele site e testar, mas utilizo o notepad++ para trabalhar. O código é este. Esta é a listview que vai alterar o idioma actual. (antes referi que era um select porque funciona dessa forma pelo facto de ser um popup menu) O que acontece é que ele altera com sucesso o idioma, e se navegar para as seguintes páginas da aplicação, ele traduz todos os textos. O problema é que após alterar o idioma, eu queria que fosse feito refresh à página para que automaticamente esta página actual também ficasse traduzida. Mas era aí que tinha problemas, a variável "window.lang" ficava vazia. <div data-role="popup" id="popupMenu"> <ul data-role="listview" data-inset="true" > <li data-role="list-divider" data-theme="a">Idioma</li> <li><a href="javascript:;" class="menuItem" onclick="window.lang = 'PTPT';">PT-PT</a></li> <li><a href="javascript:;" class="menuItem" onclick="window.lang = 'ENEN';">EN-EN</a></li> <li><a href="javascript:;" class="menuItem" onclick="window.lang = 'ESES';">ES-ES</a></li> <li><a href="javascript:;" class="menuItem" onclick="window.lang = 'FRFR';">FR-FR</a></li> </ul> </div>
Diogo Dias Posted June 4, 2013 at 01:01 PM Author Report #510907 Posted June 4, 2013 at 01:01 PM Consegui resolver o problema. Bastou-me utilizar o localStorage que permite que as variáveis não façam reset durante o refresh das páginas. Permite também que as variáveis continuem "vivas" durante o tempo em que aplicação está terminada. isto foi algo que não estava à espera de fazer, mas já que acontece vou aproveitar para memorizar preferências. Obrigado por tudo I-NOZex 😉
I-NOZex Posted June 4, 2013 at 01:53 PM Report #510934 Posted June 4, 2013 at 01:53 PM de nada, se alguma das minhas respostas ajudou, mete like (: B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now