2024. április 26., péntek

Gyorskeresés

Felugró ablak csak a magyar (vagy egyéb nemzetiségű) látogatóknak

Írta: | Kulcsszavak: jquery . javascript . felugró . country code . geo ip

[ ÚJ BEJEGYZÉS ]

Van egy angol nyelvű weboldalam, viszont egyre több magyar látogatóm is akad, számukra pedig létrehoztam egy magyar verziót is.

Az első ötletem az volt, hogy automatikusan átirányítok minden magyar IP-ről érkező látogatót a magyar weboldalra, de ezt végül elvetettem és arra jutottam, hogy jobb megoldás lenne nekik egy felugró üzenetet küldeni miszerint úgy tűnik, hogy magyar nyelvezettel rendelkező látogatók, ezért nem szeretnék-e inkább megtekinteni a magyar verziót. Ezután természetesen jöhet a link. Hogy hogy is lehet ezt kivitelezni?

jQuery + Geo-IP API:

Ez volt a kiindulópont:

$(document).ready( function() {
$.getJSON( "http://smart-ip.net/geoip-json?callback=?",
function(data){
console.log(data);
var c = data.countryCode;
if(c=="HU" || c=="HU" )
alert("Magyar látogató!");
}
);

});

Na jó, ez eddig szuper, a magyar látogatók kapnak egy felugró alertet, de én nem ezt akarom és szeretnék HTML-t is a kódba, tehát beépítettem egy egyszerű jQuery dialogot a funkcióba:

Természetesen kellenek a következők a <head>-be:

<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

Majd maga a módosított script és a beépített dialog:

<script type='text/javascript'>
jQuery(document).ready( function() {
jQuery.getJSON( "http://smart-ip.net/geoip-json?callback=?",
function(data){
console.log(data);
var c = data.countryCode;
if(c=="HU" || c=="HU" )
$(function() {
$( "#dialog" ).dialog();
});;
}
);

});
</script>

<div id="dialog" title="Üdvözlet!">
<p>Úgy tűnik, hogy magyar anyanyelvű látogató vagy.<br />Nem akarod inkább megtekinteni a weblapom magyar nyelvű változatát? <p><strong>Kattints ide:</strong> <a href="#">Magyar változat</a></p></p>
</div>

Szuperül működik :) Úgy gondoltam megosztom, mert ez nagyon jó alap és elég rugalmasan át lehet szabni egyéb igények szerint is.

Hozzászólások

(#1) bambano


bambano
titán
LOGOUT blog

én nem bonyolítanám túl ennyire. a böngészőben be lehet állítani az elvárt nyelveket, amit le lehet kérni szerveroldalon. lekéred, megkeresed az első általad is támogatottat és azt nyomod vissza.

a geoip nem az igazi, én pl. utálnék románul olvasni, csak mert a digi eredetileg román cég és a magyar terjeszkedéséről a geoip nem tud.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#2) lezso6 válasza bambano (#1) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Számból vetted ki a szót. Accept-Language headert lenne az igazi vizsgálni szerveroldalon.

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#3) The DJ


The DJ
addikt

Nem hülyeség amit írtatok, viszont számomra tökéletesen megfelel a fenti módszer is. Ennek ellenére azért jó, hogy meg lett említve a pontosabb eredményt nyújtó megoldás is, hátha valakinek majd erre lesz szüksége. Egyébként utánanéztem az 'accept-language' headerrel kapcsolatos megoldásnak is mielőtt nekiláttam és stackoverflow-n is jó néhány működő példakód van ezzel kapcsolatban, úgyhogy nem túl nehéz összelegózni azt sem.

[ Szerkesztve ]

https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.