使用jQuery javascript显示取决于域的内容

时间:2015-06-02 21:22:38

标签: javascript jquery cross-domain subdomain business-catalyst

HI伙计我有一个网站,其中包含2个域名,一个是 .com ,另一个是 .us 我试图让它显示一个标志选择国家域名,如果点击链接指向.us,我想显示美国国旗:

到目前为止,我已经做到了这一点,但有时它有效,但有时候我不知道为什么!

HTML:

<li>Currency <img class="usd-flag" style="display:none" src="/images/usd-flag.svg" width="20" height="14" alt="USD CURRENCY $;"/><img class="gbp-flag" style="display:none" src="/images/gbp-flag.svg" width="20" height="14" alt="GBP CURRENCY &pound;"/>
<ul>
<li><a href="http://www.example.com">BRITISH POUNDS ( &pound; ) </a></li>
<li><a href="http://www.example.us">US DOLLARS ( $ )</a></li>
</ul>
</li>

JS:

if(location.href.indexOf('.us') >= 0) {
        $('.usd-flag').show();
        $('.gbp-flag').hide();
    }
if(location.href.indexOf('.com') >= 0) {
        $('.gbp-flag').show();
        $('.usd-flag').hide();
    }//changes flag image depending on domain 

有人可以告诉我这里有什么不对吗?

3 个答案:

答案 0 :(得分:1)

在我的头脑中,我建议使用document.domain而不是location.href,因为它有更好的解析输出,但我想你只是忘记了在修改之前需要等待DOM准备好了它的元素。正如您使用jQuery标记的那样,您可以使用以下内容。没有它,您将需要一个文档事件处理程序(jQuery只为您包装)。

$(document).ready(function () {

    console.log(location.href)
    console.log(document.domain)

    if (location.href.indexOf('.us') >= 0) {
        $('.usd-flag').show();
        $('.gbp-flag').hide();
    }
    if (location.href.indexOf('.com') >= 0) {
        $('.gbp-flag').show();
        $('.usd-flag').hide();
    } //changes flag image depending on domain

});

FIDDLE

答案 1 :(得分:1)

你可以使用液体if if语句并使用contains。

{% if {{globals.site.host}} contains '.us' %}

<div>this is a .us domain</div>

{% else %} 

<div>This is a .com domain</div>

{% endif %}

或者如果语句也可以使用2。而不是取决于你需要的其他东西。

此处使用AU域的临时示例。

http://liquiddev.rtweb.com.au/domain

希望它有所帮助!

答案 2 :(得分:-1)

您可以首先将location.href.indexOf更改为location.href.toLowerCase()。indexOf,因此它将支持url as .COM