问题在于:
我需要检查查询中的参数。如果它被设置了,那么我需要改变它(更难的部分)。如果没有设置,我需要设置它(简单部分)
我非常确定这将是一项轻松的任务,但它最终会比我想象的要复杂一些。特别是对于那些有多个参数的情况,我正在寻找的那个位于中间某个地方。
参数为“siteLanguage”,后面跟=xx
,其中xx
代表任意两个字符,如en
或es
或其他任何字符。所以也许正则表达式是答案(男孩,我是否正在使用正则表达式)
没有这个框架,伙计,只是简单的'javascript。
答案 0 :(得分:2)
我猜你已经找到了如何找到所有链接。
网址的标准格式为service://host/path?query
我建议删除query
(只需在第一个?
之后删除所有内容),然后将其拆分为&
(因为这会分隔参数)。
您将留下key=value
形式的数组。将其拆分为关联数组。现在你可以处理那个数组了。完成修改后,您需要再次加入查询并设置链接的href
属性。
答案 1 :(得分:1)
这将检查整个文档中的所有“a href =”是否附加或调整语言。
checkhrefs = function(lang){
var links = document.getElementsByTagName("a");
for (var i=0;i<links.length;i++){
if (links[i].href.indexOf("siteLanguage") == -1){
links[i].href += "&siteLanguage="+lang;
} else {
links[i].href = links[i].href.replace(new RegExp("siteLanguage=[a-z][a-z]"),"siteLanguage="+lang);
}
}
}
答案 2 :(得分:0)
结束这样的快速破解:
function changeLanguage(lang) {
if (location.search.indexOf("siteLanguage") > -1) { //siteLanguage set
location.href = location.search.replace(/siteLanguage=[a-z][a-z]/, "siteLanguage="+lang);
} else if (location.search == "") {
location.href += "?siteLanguage="+lang;
} else {
location.href += "&siteLanguage="+lang;
}
}
实际上对9线功能很满意......