Javascript 如何捕获链接触发器以便传递参数?
我在一个客户的网站上工作,他们希望它是双语的。它基于wordpress,我购买了WPML插件。现在,我想添加一个语言切换按钮,但我无法做到这一点,同时仍然能够自定义并将其插入到我想要的任何位置,因此我提出了一个解决方案: 仅当url满足参数?lang=en时,页面呈现内容才会被翻译。因此,如果url为www.website.com/page,则页面将正常呈现;如果url为www.website.com/page?lang=en,则页面内容将以英语呈现 根据这个方案,我提出了使用href定制开关按钮的解决方案。然而,一旦他选择了一种语言,我希望他在浏览网站时保持这种语言Javascript 如何捕获链接触发器以便传递参数?,javascript,php,jquery,html,wordpress,Javascript,Php,Jquery,Html,Wordpress,我在一个客户的网站上工作,他们希望它是双语的。它基于wordpress,我购买了WPML插件。现在,我想添加一个语言切换按钮,但我无法做到这一点,同时仍然能够自定义并将其插入到我想要的任何位置,因此我提出了一个解决方案: 仅当url满足参数?lang=en时,页面呈现内容才会被翻译。因此,如果url为www.website.com/page,则页面将正常呈现;如果url为www.website.com/page?lang=en,则页面内容将以英语呈现 根据这个方案,我提出了使用href定制开关按
现在,当他访问另一个页面来传递这个参数时,如果他当前页面的url中包含?lang=en,我如何使网站以这种方式工作?到目前为止,我能够检查一个页面是否包含这个参数,现在我不知道如何传递它,我说的是用jquery在javascript中这样做。将它存储在会话变量中可能是最好的,但是既然您询问了,您可以像下面一样解析查询字符串。如果在之后有任何内容,您可能还需要将其拆分为queryStr=queryStr.split[0]
我建议您在服务器端使用会话变量来存储语言设置,而不必手动附加到用户可能访问的每个URL
function parseQuery(url) {
var queryStr = url ? url.split('?')[1] : location.search.slice(1),
query = {};
if (queryStr !== '') {
var params = queryStr.split('&');
for (var i = 0; i < params.length; i++) {
var param = params[i].split('=');
query[decodeURIComponent(param[0])] = decodeURIComponent(param[1] || '');
}
}
return query;
}