2015-05-31 31 views
-3

我有一個JavaScript重定向腳本。當這個國家是美國的時候它會重定向。使JavaScript不在特定國家運行

<script> 
function determineCountry(data){ 
    switch(data.address.country_code){ 
     case "US" : 
     document.location.href = "http://xxxxxxxx.biz/theme.php"; 
     break; 
    }  
} 
</script> 
<script type="text/javascript" src="http://api.wipmania.com/jsonp?callback=determineCountry"></script> 

現在我想要的是相反的。當國家是美國的時候不要運行腳本。

在此先感謝

+0

這是一個重定向,不運行腳本。那麼,當這個國家是美國的時候,你是不是試圖重定向? – jfriend00

+0

'case「US」:return;'? – nnnnnn

+0

只是不要將國家情況添加到交換機?這將很容易被知道如何打開開發工具的人繞過,只是一個fyi。 – Jite

回答

0

只是做一個break如果該國是「美」。請在defaultswitch部分更改document.location.href

function determineCountry(data){ 
    switch(data.address.country_code){ 
     case "US" : 
     break; 
     default: 
     document.location.href = "http://xxxxxxxx.biz/theme.php"; 
    }  
} 
+0

你搖滾的人。 (Y) –

0

如果條件爲真,則會發生切換的情況。也就是說,在你的情況下,如果data.address.country_code == "US"的情況下會被解僱。

如果沒有發現滿足條件的情況,將使用默認情況(如果設置了一個)。
如果您希望重定向少數國家,但不是全部,請將這些國家/地區添加到交換機,即應該重定向到的國家/地區,否則您將它們排除在外。

function determineCountry(data){ 
    switch(data.address.country_code){ 
    case "SE" : 
    document.location.href = "http://xxxxxxxx.biz/theme.php"; 
    break; 
    }  
} 

determineCountry('SE'); // Will redirect. 
determineCountry('US'); // Will not redirect. 
determineCountry('CZ'); // Will not redirect. 

你也可以添加所有要重定向到一個列表中的國家,這樣做有一個如果:

var codesToRedirectOn = ['SE', 'IT']; 
function redirectIfCountry(code) { 
    if(codesToRedirectOn.indexOf(code) !== -1) { 
    // Redirect. 
    } 
    // Don't redirect (i.e., do nothing). 
} 

一個重要的事情,雖然注意,做時在客戶端的邏輯是客戶端代碼總是在客戶端手中。如果客戶願意,客戶可以輕鬆繞過重定向代碼。
如果你希望它更安全,在頁面加載前,重定向應該在服務器端完成。

+0

謝謝。也感謝客戶端信息。但不幸的是我的cms不支持serverside –