Javascript 如果URL包含某个参数,如何更改变量的值
我有一个DataTable,如果用户选择了我想将DataTable翻译成英语或西班牙语的网站的英语版本,我想更改DataTable的语言 到目前为止,我的代码如下所示:Javascript 如果URL包含某个参数,如何更改变量的值,javascript,html,jquery,datatable,Javascript,Html,Jquery,Datatable,我有一个DataTable,如果用户选择了我想将DataTable翻译成英语或西班牙语的网站的英语版本,我想更改DataTable的语言 到目前为止,我的代码如下所示: var langMap = { en: { path: 'English', mods: { sLengthMenu: "Display _MENU_ records per page - custom test" }
var langMap = {
en: {
path: 'English',
mods: {
sLengthMenu: "Display _MENU_ records per page - custom test"
}
},
es: {
path: 'Spanish',
mods: {
sLengthMenu: "Mostrar _MENU_ registros - algo muy especial..."
}
}
};
function getLanguage() {
var lang = 'es' //$('html').attr('lang');
var result = null;
var path = '//cdn.datatables.net/plug-ins/1.10.13/i18n/';
$.ajax({
async: false,
url: path + langMap[lang].path + '.json',
success: function(obj) {
result = $.extend({}, obj, langMap[lang].mods)
}
})
return result
}
function getLanguage() {
if ( document.location.href.indexOf('/en') > -1 ) {
var lang = 'es';
}
var result = null;
var path = '//cdn.datatables.net/plug-ins/1.10.13/i18n/';
$.ajax({
async: false,
url: path + langMap[lang].path + '.json',
success: function(obj) {
result = $.extend({}, obj, langMap[lang].mods)
}
})
return result
}
我试图实现的是这个值var lang='es'
不能硬编码,因此,我想检查URL是否包含/es
或/en
,并更新该值
大概是这样的:
var langMap = {
en: {
path: 'English',
mods: {
sLengthMenu: "Display _MENU_ records per page - custom test"
}
},
es: {
path: 'Spanish',
mods: {
sLengthMenu: "Mostrar _MENU_ registros - algo muy especial..."
}
}
};
function getLanguage() {
var lang = 'es' //$('html').attr('lang');
var result = null;
var path = '//cdn.datatables.net/plug-ins/1.10.13/i18n/';
$.ajax({
async: false,
url: path + langMap[lang].path + '.json',
success: function(obj) {
result = $.extend({}, obj, langMap[lang].mods)
}
})
return result
}
function getLanguage() {
if ( document.location.href.indexOf('/en') > -1 ) {
var lang = 'es';
}
var result = null;
var path = '//cdn.datatables.net/plug-ins/1.10.13/i18n/';
$.ajax({
async: false,
url: path + langMap[lang].path + '.json',
success: function(obj) {
result = $.extend({}, obj, langMap[lang].mods)
}
})
return result
}
有人能帮我一下吗?只要你不支持应该是死浏览器(即IE),如果它是查询字符串的一部分,你可以使用它
const qs=window.location.search;
常量参数=新的URLSearchParams(qs);
const lang=params.get('lang');
如果它是url本身的一部分,那么您必须解析url。您可以使用窗口.location.pathname
获取不带域的urlpath
。这样说:https://my.domain.com/some/path/en
//删除带前缀的“/”,然后将其拆分
const pathbits=window.location.pathname.slice(1.split('/');
const lang=路径位[2];
您可以使用此函数从该答案中解析\u查询\u字符串(),以获取参数
然后做一些像这样的简单逻辑
var query_string = window.location.search.substring(1);
var lang = parse_query_string(query_string);
if ( lang==='es') {
//do something;
}
else{
//do something
}
但请注意,这适用于较新的浏览器,如参考答案所示。对于较旧的浏览器(包括Internet Explorer),您可以使用或使用此答案原始版本中早于URL的代码:
async:false
不推荐使用请求->