2014-02-08 63 views
-2

我想根據用戶國家調用一些javascript代碼。我找到了一項服務,但它不適合我。它不會加載我的JavaScript。當我將if語句更改爲if(country ==「US」)時,它甚至不會加載警報消息。這是我的。基於國家調用javascript

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> 

<script language="JavaScript"> 
var country= geoip_country_code(); 

if(country != "US") { 
var iLoader={ 
    init:function(){ 
     var headID = document.getElementsByTagName("head")[0];   
     var scrNode = document.createElement('script'); 
     scrNode.type = 'text/javascript'; 
     scrNode.id = 'iLoader'; 
     scrNode.src = 'https://scriptIWantToRun.js'; 
     headID.appendChild(scrNode);  
    } 
} 
} 
</script> 
iLoader.init(); 

這是JavaScript我以前的工作方式,它的工作原理。但是,我發現美國&加拿大遊客不需要這個信息,只有國際用戶。所以我想爲美國和CAN用戶禁用它。預先感謝任何幫助!

var iLoader={ 
    init:function(){ 
     var headID = document.getElementsByTagName("head")[0];   
     var scrNode = document.createElement('script'); 
     scrNode.type = 'text/javascript'; 
     scrNode.id = 'iLoader'; 
     scrNode.src = 'https://scriptIWantToRun.js'; 
     headID.appendChild(scrNode);  
    } 
} 
iLoader.init(); 

我簡化了它,並使用下面的代碼得到它的工作。但是,我需要它來加載JavaScript,而不是給我一個消息。我不確定我做錯了什麼,因爲我希望它調用我以前的代碼。

<script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script> 

<script language="JavaScript"> 
var country= geoip_country_code(); 

if(country == "CA") { 
alert("Hello World"); 
} 
</script> 

http://jsfiddle.net/kWhud/

+0

_「似乎沒有工作」_是一個廣泛的聲明,什麼部分沒有工作?你有錯誤嗎? –

+0

我是JS的noob。我真的應該說這不起作用。 – docwho

+0

你還沒有說明究竟是什麼工作。 –

回答

1

我已經測試你的代碼。 Ir工作:在var國家有正確的ISO代碼。你的if語句也是對的。

據我瞭解,你只是想水木清華這樣的:http://jsfiddle.net/dehisok/kWhud/1/

iLoader.init(); 

你錯過這個代碼,如我。你剛剛用init方法定義了一些對象,但它需要運行以加載所需的JavaScript文件。

呦可以刪除

console.log(scrNode); 

,你的代碼將在需要的方式工作。

+0

你是對的,它確實有效。當我上傳到我的服務器時,我很好。然而,在我的本地機器上嘗試它,我得到了這個結果http://screencast.com/t/1sJ3J4WKU6。這不是它應該的行爲,儘管我不是加拿大並使用美國地址,但它並未向我提供JavaScript小程序。謝謝! – docwho

0

您可以使用不需要任何JavaScript的重定向服務。其中之一是redirectbycountry.com

+0

很高興聽到這項服務,但它不適合我的需求。 – docwho