你可以在url路径中使用变量吗?

时间:2015-01-30 15:30:03

标签: javascript html

我的应用拥有包含不同语言内容的html页面。我喜欢在这样的网址中使用变量(在选择语言时设置):

<a href="/language/*variable*/product.html">

编辑:我被标记下来以便添加更多信息让我说我在页面加载时设置了

var language = english;

应用中会有链接将其更改为其他语言; - )

3 个答案:

答案 0 :(得分:1)

让你的标签看起来像这样

<a id="link" href="#">Click Me!</a>

让你的变量被称为prod。 将这些行添加到您想要更新网址的javascript中。

var hyperl = document.getElementById("link");
hyperl.href = "/language/" + prod + "/product.html";

编辑: 使用此HTML

<a id="link" href="/language/LANG/product.html">Click Me!</a>

使用此javascript(或类似代码)使所有链接指向相同的语言(变量名 prod ):

var links = document.getElementsByTagName("a");
for (i=0; i<links.length; i++) {
    var hyperl = links[i];
    hyperl.href.replace(LANG, prod);
}

答案 1 :(得分:0)

您可以使用jQuery动态生成URL。

var string = '/language/'+variable+'product.html';
$(a#language).attr('href', string);

答案 2 :(得分:0)

您可以使用Javascript函数动态替换页面上任何href标记的所有<a>属性,如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Example</title>
    <script>
"use strict";
function setLanguage(lang) {
  var elements = document.getElementsByTagName('a')
  for (var e = 0; e < elements.length; ++e)
  { elements[e].href = elements[e].href.replace(/\?hl=[A-za-z]*/, "?hl=" + lang); }
}
    </script>
  </head>
  <body>
    <h1>Search with Google</h1>
    <ol>
      <li><a href="https://encrypted.google.com/search?hl=en&amp;q=python">Search for <b>Python</b></a></li>
      <li><a href="https://encrypted.google.com/search?hl=en&amp;q=ruby">Search for <b>Ruby</b></a></li>
      <li><a href="https://encrypted.google.com/search?hl=en&amp;q=javascript">Search for <b>Javascript</b></a></li>
    </ol>
    <br>
    <small>
      Language: 
      <a href="#" onclick="setLanguage('en')">en</a>
      <a href="#" onclick="setLanguage('de')">de</a>
    </small>
  </body>
</html>

在上面的示例中,只要按下?hl=xxxen按钮之一,就会通过正则表达式替换网址的de部分。