0

ここには、さまざまな国で利用できるモバイル Web ページがあり、それぞれの国で、訪問者の IP に基づいて以下を変更する機能が必要です。

  • div#container で別の背景画像を使用
  • div#buttons を非表示にし、div#buttons-2 を表示する

GeoIPと呼ばれる JavaScript を使用して、訪問者の国を識別し、関数名を 2 文字の ISO 3166-1 形式で取得して、他の JavaScript 関数を制御することができます。たとえば、私は英国出身なので、ページにアクセスすると、JavaScript によって次のコードが生成されます。

function geoip_country_code() { return 'GB'; }

HTML には現在、次のようなスクリプトがあります。

    if (geoip_country_code() == 'GB') 
    {
      alert("Hello, you are in Great Britain");
    }

指定した要素の CSS を操作できるように開発したいのですが、JavaScript に精通していないため、ここで助けが必要です。

これは、ページに埋め込まれた JavaScript です。

<script src="http://j.maxmind.com/app/country.js" charset="ISO-8859-1"></script>

制御したい HTML 要素は次のとおりです。

<div id="container">
            <div id="buttons">
                <a href="#" target="blank">
                    <div class="button youtube"></div>
                </a>
                <a href="#" target="blank">
                    <div class="button facebook"></div>
                </a>
                <a href="#" target="blank">
                    <div class="button web"></div>
                </a>
                <a href="#" target="blank">
                    <div class="button appstore"></div>
                </a>
            </div>
        </div>
4

2 に答える 2

2
var map = {
    'GB': {
        'background': 'img1.jpg',
        'buttons': 'show',
        'buttons2': 'hide'
    }
};

var country = geoip_country_code();
$('#container').css('background', map[country].background);
$('#buttons')[map[country].buttons]();
$('#buttons2')[map[country].buttons2]();

jQueryを使った例です。「マッピング オブジェクト」を使用するアイデアが得られることを願っています (そこには英国のみがありますが、必要に応じて国を追加します)。これに基づいてアクションを実行できます。

于 2012-09-04T11:46:57.643 に答える
0

返された国コードに基づいて、スタイルシート (css) を変更する必要があります。

GB が返された場合のように、div#container が異なる背景画像を持つ css をロードします。div#buttons は非表示になり、div#buttons-2 は表示されます

そうでなければその逆。

または、JavaScriptでこれを行うことができます

コンテナの背景画像を設定し、div#button を非表示にし、div#buttons-2 を表示する関数を作成します。

およびその逆を行う別の関数: コンテナーの別の背景画像を設定し、div#button を表示し、div#buttons-2 を非表示にします

これで、次のように表示する適切な関数を呼び出すことができます。「US」が返された場合は func1 を呼び出し、「UK」が返された場合は func2 を呼び出します。

于 2012-09-04T11:01:04.043 に答える