我不擅长JS,所以我一直在玩一些我已经设法找到的Greasemonkey脚本,但是它们没有按预期运行。我想要的是非常基本的:
检查域中的网址是否包含变量lang
- ?lang
或&lang
如果网址包含该变量,请检查其值:如果值为en
则不执行任何操作,但如果该值为其他值,请将其替换为en
如果网址不包含变量lang
,请将其添加到网址末尾,如&lang=en
有什么想法吗?
答案 0 :(得分:1)
try {
var url = document.location.toString();
var updateUrl = updateQueryStringParameter(url, 'lang', 'en');
console.log(updateUrl);
console.log(url != updateUrl);
if (url != updateUrl) {
document.location = updateUrl;
}
} catch (e) {}
function updateQueryStringParameter(uri, key, value) {
var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
var separator = uri.indexOf('?') !== -1 ? "&" : "?";
if (uri.match(re)) {
return uri.replace(re, '$1' + key + "=" + value + '$2');
} else {
return uri + separator + key + "=" + value;
}
}
答案 1 :(得分:0)
您想使用window.location
。 .search
包含字符串中的查询。
// if the query doesn't contain lang=en
if (!window.location.search.match(/[?&]lang=en(&|$)/)) {
// either replace an existing lang=... param or append it
window.location.search = window.location.search.
replace(/[?&]lang=[^&]*|$/, '&lang=en');
}