获取当前URL并使用JavaScript在前面添加一些内容

时间:2020-10-23 10:48:21

标签: javascript html jquery web

对于多语言网站,我想要两个按钮来表示网站上存在的两种语言。

标准网址为:mydomain.com/something(例如德语)。
英文网址为:mydomain.com/en/something

如何设置按钮以获取当前的url /页面(在这种情况下为/something并在其前面添加/en?我发现的所有内容都是在整个域之后添加内容。

非常感谢您。

3 个答案:

答案 0 :(得分:1)

检查Location Obj MDM docs

console.log(document.location.origin + "/en" + document.location.pathname)

答案 1 :(得分:0)

我不确定您的最终目标是什么,但是如果涉及到重新加载URL中具有本地化的同一页面(即在按钮上单击,则重新加载页面,页面的URL更改为 mydomain.com/en / something ,这意味着在您下次单击按钮时,需要重新加载页面,并且其URL也需要再次为 mydomain.com/something ),然后您可能需要查看RegEx和针对当前URL运行它,然后换出按钮中的URL,以便在单击时转到正确的域版本。

如果最终目标是仅获取当前URL并切换是否在URL中显示本地化,则请查看下面的代码段,希望对您有所帮助。

为进一步阅读,我认为这些资源可能对您有所帮助:

jQuery(document).ready(function($) {
  var $languageToggle = $('#language-toggle');
  var origin = location.origin;
  var pathname = location.pathname;

  $languageToggle.on('click', function() {
    var $this = $(this);
    var toLanguage = $this.data('to-language');
    var currentLanguage = $this.data('current-language');
    var localisation = '';

    /**
     * This if statement will help prevent the constructedUrl variable
     * from ever having a url such as https://website.com//page
     * (notice the double forward slashes after .com).
     */
    if (toLanguage) {
      localisation = '/' + toLanguage;
    }

    var constructedUrl = origin + localisation + pathname;

    $this.data('to-language', currentLanguage);
    $this.data('current-language', toLanguage);

    $('#output').text(constructedUrl);
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="output">Click on the toggle button</div>

<button id="language-toggle" data-to-language="en" data-current-language="">
  Toggle language
</button>

答案 2 :(得分:-1)

var myFunc = () => {
  window.location.href = window.location.href + "place you text here"
}
Click the button and the page will be edited
<button onclick="myFunc()">click me</button>