猿问

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

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

只有当 url 满足参数“?lang=en”时,页面才会呈现内容翻译,因此如果 url 是“www.website.com/page”,它将正常呈现,如果 url 是“www.website.com/ page?lang=en" 它的内容将是英文的。

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

现在,如果他的当前页面在 url 中包含“?lang=en”,当他访问另一个页面以传递此参数时,我该如何使网站以这种方式工作?到目前为止,我能够检查页面是否包含此参数,但现在我不知道如何传递它(我说的是使用 jquery 在 javascript 中执行此操作)。


慕姐8265434
浏览 130回答 1
1回答

千万里不及你

将它存储在会话变量中可能是最好的,但是既然你问了,你可以像下面一样解析查询字符串。如果您在 之后有任何事情,#您可能也想split()关闭它 ( queryStr = queryStr.split('#')[0];)。function parseQuery(url) {&nbsp; &nbsp; var queryStr = url ? url.split('?')[1] : location.search.slice(1),&nbsp; &nbsp; &nbsp; &nbsp; query = {};&nbsp; &nbsp; if (queryStr !== '') {&nbsp; &nbsp; &nbsp; &nbsp; var params = queryStr.split('&');&nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i < params.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var param = params[i].split('=');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; query[decodeURIComponent(param[0])] = decodeURIComponent(param[1] || '');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return query;}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答