Jump to content
oomaikoo

Comparar variável no IF, ELSE

Recommended Posts

Boa noite pessoal, estou tentando fazer um código, para mostrar um banner em meu site, quando o usuário entrar, baseado na localização dele. É basicamente o seguinte: a API de geolocalização retorna o nome da cidade, e, se for a cidade, então mostre o banner. Se não for, mostre outro. O código JavaScript que estou usando é esse:

<script type="application/javascript">
    function geoip(json){
        var city = document.getElementById("user_city");
        city.textContent = json.city;
    }
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script>
A cidade é: <span id="user_city"></span> 



Esse código retorna o nome da cidade no <span id>.

Porém eu preciso fazer um IF, ELSE no próprio JavaScript, para mostrar o banner ou não. Seria basicamente assim:

<script type="application/javascript">
    function geoip(json){
        var city = document.getElementById("user_city");
        city.textContent = json.city;
    }
	
	if (city == "nomedacidade") {
	document.write ("<img src='banner1.jpg'></img>");
	}
	else {
	document.write ("<img src='banner2.jpg'></img>");
	}
	
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script> 



O problema é que a variável city não fica setada dentro do if, não retorna o nome da cidade, eu só queria comparar no if o nome da cidade com o que a API retorna.
Alguém tem alguma ideia?

Share this post


Link to post
Share on other sites

E pq você não coloca esse if / else dentro da function ?. Bom, se não quiser .. tenta isso (Não testei, mas deve funcionar):

 

function geoip ( json )
{
    var city = document.getElementById("user_city");
    city.textContent = json.city;

 

    verifyCity ( json.city ) // Cria e chama uma func que faz essa verificação
}

 

function verifyCity ( cityName )
{
    if ( cityName === "nomedacidade" )
    {
        document.write ("<img src='banner1.jpg'></img>")
    }
    else
    {
        document.write ("<img src='banner2.jpg'></img>")
    }
}

Share this post


Link to post
Share on other sites

Não funcionou, não retorna nada :/

<script type="application/javascript">
function geoip ( json )
{
    var city = document.getElementById("user_city");
    city.textContent = json.city;

 

    verifyCity ( json.city ) // Cria e chama uma func que faz essa verificação
}


function verifyCity ( cityName )
{
    if ( cityName === "Maceió" )
    {
        document.write ("Estou em Maceió")
    }
    else
    {
        document.write ("Não estou em Maceió")
    }
}
</script>
<script async src="https://get.geojs.io/v1/ip/geo.js"></script>

 

Share this post


Link to post
Share on other sites

Você pode remover esse " var city  " e deixar apenas  city = 

city = document.getElementById("user_city")  

Quando você declara a variavel dentro da função com a palavra "var antes", ela nao vai poder ser usada fora da função.

se declarar sem isso, então pode usar.

Share this post


Link to post
Share on other sites
1 hora atrás, oomaikoo disse:

Não funcionou, não retorna nada :/

 

Você ta chamando as funções ? olha:

 

<!DOCTYPE html>
<html lang="pt-BR">
 
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
 
<title> iMasters </title>
 
<style>
 
* { margin: 0 ; padding: 0 ; box-sizing: border-box ; }
 
</style>
</head>
 
<body>
 
</body>
 
<script>
 
window.onload = () => {
 
let json = { city : "São paulo" } // Simulando o recebimento de um json
 
function geoip ( json )
{
document.write ( json.city ) // o json do parametro
checkCityName ( json.city )
}
 
function checkCityName ( name )
{
if ( name === "Maceió" )
{
console.log ( 'Estou em Maceió' )
}
else
{
console.log ( 'Não estou em Maceió, estou em', name )
}
}
 
geoip ( json ) // chamando a função
}
 
</script>
</html>

Share this post


Link to post
Share on other sites

@_FelipeOlvr Cara não consegui de forma alguma, você pode me ajudar por mensagem? é que sou leigo em Javascript. Essa função eu só consigo fazer em PHP. Estou precisando urgente para entregar esse pequeno script funcionando amanhã, agradeceria muito se pudesse me ajudar, sei que é simples pra você.

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

  • Similar Content

    • By thgsousa3122
      <?php $url = 'www.site.com'; $dadosSite = file_get_contents($url); echo $dadosSite; ?> <script type="text/javascript"> window.onload = function(){ var x = document.getElementsByClassName("fraction")[0].innerHTML= "100"; } </script> Glr tenho esse codigo, eu queria alterar o conteudo que tem como classe "fraction", porem ele nao da resposta, alguem tem alguma sujestão?
    • By SilvioHC
      Olá estou começando a a prender node js mas já no primeiro teste algo de errado não está certo 
      const express = require('express'); const app = express(); app.listen(934); //Sempre Na Ultima Linha não sei dizer se é só o tutorial q é antigo 

    • By Jéssica Nascimento
      Meu código só decifra uma letra, não está fazendo as demias tem algum problema no meu código que não consigo enchegar poderiam me ajudar 
       
      function encode(text, offset){   let alphabetSize = 26; let firstAsci = 65; let textEncode =[]; let encodeArray =[];   for (let i=0; i < text.length; i++){   textEncode[i] = (text.charCodeAt(i)-firstAsci+offset)% alphabetSize +firstAsci; encodeArray.push(String.fromCharCode(textEncode[i])); console.log(encodeArray); return encodeArray.join(''); }
    • By AkSOlaris
      Estou, sem sucesso, tentando utilizar a biblioteca crypto js no meu script. Estou precisando usa-lo para gerar um hash que vai num objeto, porém aparentemente devo estar importando de maneira errada, já que a palavra require que eu atribuo a minha constante simplesmente não é reconhecida. Sou iniciante e estou utilizando essa biblioteca para um projeto em blockchain.  Estou usando o vscode e o node, porém depois daqui nao tenho idéia de como proceder, pois ja fiz de tudo que vi em sites e não entendi, tampouco consegui por em pratica.
       
      A linha de código que deveria chamar a biblioteca:
      const SHA256 = require('crypto-js/sha256');  
    • By gramosiri2
      Oi, dei uma procurada em alguns scripts, porém não consegui achar nenhum que faça o que estou precisando, não achei nem no W3School.
      Porém parece ser bem simples, clicar em uma palavra e ela mudar para outra palavra e ao clicar novamente mudar para o formato original. Por exemplo, Palavra1 ao clicar vira Palavra2 e ao clicar em Palavra2 vira Palavra1, nesse loop ai rsrs.
      <a href="#palavra" id="palavra" onclick='document.getElementById("palavra").innerHTML = "Palavra2"'>Palavra1</a> Este exemplo ele só muda uma vez...
×

Important Information

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