以更优雅的方式更改位置

时间:2018-07-16 14:44:25

标签: javascript arrays location

我需要在选择框更改时重新加载页面。我的解决方案效果很好,但是我敢肯定有更优雅的方法可以做到这一点。

主要问题是网址不同。

http://domain.tld/homepage/ 德国 /隐私

germany的一部分可以更改。在选择框更改事件中,应使用斜杠将选择框的当前值附加到域,以使url看起来像这样,即

http://domain.tld/homepage/germany/privacy / 4

实际上,我不能仅将当前选择的值附加到onchange事件中,因为那样的话,我将在多个更改事件中获得以下结果:

http://domain.tld/homepage/germany/privacy / 4/60/6

那么,有没有一种更优雅的方法来完成我的函数呢?

    function reloadPrivacyPage(language) {
            var locationUrl = window.location.pathname;
            var locationUrlSplitted = locationUrl.split('/');
            locationUrl = '';
            for (var key in locationUrlSplitted) {
                if(locationUrlSplitted[key].length > 0) {
                    locationUrl = locationUrl + '/' + locationUrlSplitted[key];
                }
                if(locationUrlSplitted[key] === 'privacy')
                {
                    break;
                }
            }
            top.location.href='http://' + window.location.host + locationUrl + '/' + language;
        }
<form action="index.php?action=change" method="post">
            <select id="privavyLanguage" name="privacyLanguage" onchange="reloadPrivacyPage(this.value);">
                <option value="0">- Select language -</option>
                <option value="4">Deutsch</option>
                <option value="6">English</option>
                <option value="60">Polski</option>
            </select>
        </form>

0 个答案:

没有答案