如何捕获链接触发器,以便可以传递参数?

时间:2019-06-13 14:58:51

标签: javascript php jquery html wordpress

我正在客户的网站上工作,他们希望它是双语的。它基于wordpress,我购买了WPML插件。现在,我想添加一个语言切换按钮,但是在仍然能够自定义并将其插入到我想要的任何位置的同时,我无法执行此操作,所以我想出了一个解决方案:

仅当URL满足参数“?lang = en”时,页面才会翻译内容,因此,如果URL是“ www.website.com/page”,则通常将呈现该页面,而如果URL是“ www.website” .com / page?lang = zh-CN”。其内容将为英文。

我想出了根据此方案用href制作自定义开关按钮的解决方案。但是,一旦他选择了一种语言,我便希望在浏览网站时保持这种语言。

现在,如果他当前的页面在URL中包含“?lang = en”,并且他访问另一个页面以传递此参数,我该如何使该网站正常工作?到目前为止,我已经能够检查页面是否包含此参数,而现在我不知道如何传递该参数(我正在谈论使用jquery在javascript中进行此操作)。

1 个答案:

答案 0 :(得分:0)

将其存储在会话变量中可能是最好的选择,但是由于您要求您可以像下面一般地解析查询字符串。如果#之后还有其他内容,您可能还想将split()取消(queryStr = queryStr.split('#')[0];)。

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;
}