Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?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>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.
>
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>/profile/242144-_felipeolvr/?do=hovercard" data-mentionid="242144" href="/profile/242144-_felipeolvr/" rel="">@_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ê.
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):