2014-02-08 64 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