2012-09-04 68 views
0

我們有一個移動網頁here這將是在不同的國家和每一個我們需要改變的能力,國家現有的基礎上,訪問者的IP如下:依賴於地理IP控制HTML元素

  • DIV#容器有不同的底色圖像
  • DIV#按鈕被隱藏和DIV#按鈕-2顯示

使用JavaScript稱爲GeoIP我們走了多遠能夠識別訪問者的國家,搶個e函數名稱,以兩個字符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> 
+0

我對JavaScript並不熟悉,所以我現在正在摸索一些嘗試。所有我曾嘗試是測試它的JS,經過以下工作: 如果(geoip_country_code()==「GB」) \t { \t警報(「你好,你是在大不列顛」); \t} – Audity

回答

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的例子。我希望你能夠想到使用「映射對象」(只有英國在那裏,但是你可以根據你的意願添加國家),然後你可以根據這個來做你的動作。

+0

太好了,非常感謝。非常有助於理解這個地圖的概念。我可以通過這種方式更改元素的href嗎? – Audity

+0

我試圖使用此代碼:\t \t \t \t''href':'http://www.youtube.com/watch?v = 12345678'' and'$(「a.youtube」)。attr(' href',map [country] .href);'但是當它讀取YouTube鏈接時,我得到'未捕獲的語法錯誤意外的字符串'。有任何想法嗎? – Audity

+0

嗯沒有抱歉我沒有看到問題:/你可以做一個jsfiddle嗎? –

0

基於國家返回代碼,你應該改變樣式表( css)

如果返回GB然後加載CSS其中 div#容器有不同的背景圖片 div#按鈕被隱藏,div#按鈕-2被顯示

反之亦然。

,或者你可以簡單地做到這一點與JavaScript

請一個功能: 設置容器的背景圖像, 隱藏的div#鍵, 顯示DIV#按鈕-2

和其他功能這樣做反過來想: 設置容器的另一個背景圖像, 顯示DIV#鍵, 隱藏DIV#按鈕-2

現在,您可以撥打其中t相應的功能o顯示,如: 彷彿回到 '美國' 呼叫FUNC1, 彷彿回到 'UK' 呼叫FUNC2