【问题标题】:call javascript based on country根据国家/地区调用 javascript
【发布时间】:2014-02-08 21:21:17
【问题描述】:

我正在尝试根据用户所在的国家/地区调用一些 javascript 代码。我找到了一项服务,但它对我不起作用。它不会加载我的javascript。当我将 if 语句更改为 if(country == "US") 时,它甚至不会加载警报消息。这就是我所拥有的。

<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,它可以正常工作。但是我发现美国和加拿大的访问者不需要这些信息,只有国际用户。所以我想为美国和加拿大用户禁用它。提前感谢您的帮助!

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/

【问题讨论】:

  • “似乎不起作用” 是一个笼统的说法,哪一部分不起作用?你有错误吗?
  • 我是 JS 的菜鸟。我真的应该说它不起作用。
  • 你还没有确切地说出什么不起作用。
  • 更改为真实声明。我尝试使用警报,并将!= 更改为 ==,但在使用美国 IP 时没有收到警报。我还查看了 firebug 中的网络选项卡,但它从未“似乎”加载过服务。
  • 我没看到你打电话给iLoader.init()

标签: javascript jquery redirect


【解决方案1】:

我已经测试了您的代码。我的作品:var 国家/地区有正确的 ISO 代码。而且你的 if 语句也是对的。

据我了解,您只想这样:http://jsfiddle.net/dehisok/kWhud/1/

iLoader.init();

你错过了这个代码,就像我一样。您刚刚使用 init 方法定义了一些对象,但需要运行它以加载所需的 javascript 文件。

你可以删除

 console.log(scrNode);

您的代码将以所需的方式工作。

【讨论】:

  • 你是对的,它确实有效。当我把它上传到我的服务器时,我很好。但是,在我的本地机器上尝试我得到了这个结果 screencast.com/t/1sJ3J4WKU6 。它没有按应有的方式行事,尽管我不是加拿大并且使用的是美国地址,但它没有为我提供 javascript 小程序。谢谢!
【解决方案2】:

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

【讨论】:

  • 很高兴听到这项服务,但它无法满足我的需求。
猜你喜欢
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2015-05-10
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多