2014-02-12 53 views
0

我想,如果用戶正在訪問分割窗口位置相應

  1. xxxx.com will need to go to xxxx.com/langchoice. 2. xxxx.com/currentlang/test.php will need to go to xxxx.com/langchoice/test.php 根據郎選擇下拉菜單並使用他們當前window.location的

    所以將用戶重定向3 xxxx.com/test.php will need to go to xxxx.com/langchoice/test.php

我已經做了1和2,但不是特別滿意我編碼的方式,考慮到如果更多的話年齡可能會增加,我需要每次都添加一行...可以更好地重寫嗎?

var s = window.location.href; 

       if (s.indexOf(".php") !=-1) 
       { 

        if (s.indexOf("/en/") !=-1) 
        { 
        var location=window.location.href.replace("/en/","/"+evt.selectedItem+"/"); 
        } 
        else if (s.indexOf("/gr/") !=-1) 
        { 
        var location=window.location.href.replace("/gr/","/"+evt.selectedItem+"/"); 
        } 
        else if (s.indexOf("/it/") !=-1) 
        { 
        var location=window.location.href.replace("/it/","/"+evt.selectedItem+"/"); 
        } 
        else 
        { 

        } 

         window.location.replace(location); 
       } 
       else 
       { 
        var location=window.location.href.replace("#",""); 
        window.location.replace(location+evt.selectedItem); 
       } 
+0

您可能想要試用RegEx。 – malkassem

+1

也許動態地在後端(php)中創建語言選擇,每個語言版本的完整URL會自動 – fast

回答

1

這確實讓檢查,看是否有一種「語言」,但其基本思想,以取代將

這樣做有它的許多方面,這是一種方式

var orgPathName = window.location.pathname; 
var newPathName = orgPathName.replace(/^\/[^\/]*/,"/" + evt.selectedItem); 
var newUrl = window.location.href.replace(orgPathName, newPathName); 

現在做檢測,你做一個簡單的測試

var hasLang = (/^\/(en|gr|in)\//i).test(window.location.pathname); 

這種疼痛是保持語言列表

0

你如何堅持langchoice?你把它存儲在cookie中?

我想你基本上是說,用戶應該是:

xxxx.com/[langchoice]etc 

在任何時候。

所以,你可以拆分'/',然後,如果存在,檢查項目[1]。如果它匹配langchoice cookie,請繼續,如果不匹配,請將其交換出去。