Javascript 从';%解码手机上的URL7C';至'|';

Javascript 从';%解码手机上的URL7C';至'|';,javascript,wordpress,urlencode,encodeuricomponent,Javascript,Wordpress,Urlencode,Encodeuricomponent,我们使用下面的代码可以链接到我们网站上的特定选项卡 正如目前所做的那样,它允许我们通过在URL中添加#成员选项卡| 3链接到特定选项卡,其中成员选项卡是类,3是要打开的选项卡,它们之间用“|”分隔 问题:符号“|”被编码为“%7C”,但无法在手机/平板电脑上解码。我尝试添加replace(“%7C”和“|”),但没有解决问题 例如: 函数_setTab(){ //获取当前哈希值 var curHash=window.location.hash.substr(1); //仅当提供了哈希并将其范围

我们使用下面的代码可以链接到我们网站上的特定选项卡

正如目前所做的那样,它允许我们通过在URL中添加#成员选项卡| 3链接到特定选项卡,其中成员选项卡是类,3是要打开的选项卡,它们之间用“|”分隔

问题:符号“|”被编码为“%7C”,但无法在手机/平板电脑上解码。我尝试添加
replace(“%7C”和“|”)
,但没有解决问题

例如:


函数_setTab(){
//获取当前哈希值
var curHash=window.location.hash.substr(1);
//仅当提供了哈希并将其范围限定到成员选项卡时才继续
如果(!curHash | |!curHash.match('member-tabs')){return false;}
//split和int val tab num
curHash=parseInt(curHash.replace('%7C','|')split('|')[1]);
//测试解码URI
解码URI(curHash)
//如果选项卡为当前状态,则忽略
如果(curHash==window.\tabu selected){return false;}
//将当前选项卡设置为窗口
窗口。\ tabu selected=curHash;
//将单击事件添加到所选选项卡
开关(curHash){
案例0:
案例1:
案例2:
案例3:
案例4:
jQuery('#member tabs.et_pb_tab.'+curHash+'a')。单击();
打破
违约:
返回false;
打破
}
//滚动到选项卡容器
_滚动totabs();
}
//滚动到偏移量为50px的成员选项卡容器
函数_scrollToTabs(){
var oTabs=jQuery(“#成员选项卡”);
如果(otab.length>0){
jQuery('html,body')。动画({
scrollTop:(otab.offset().top-50)
}, 1000);
}
返回false;
}
//为加载时选择的选项卡设置错误状态
窗口。\ tabu selected=false;
//附加到窗口加载,因为选项卡稍后在文档中初始化
jQuery(window).on('load',function()){
//检查初始哈希状态
_setTab();
//添加哈希更改窗口侦听器
jQuery(window).on('hashchange',function()){
_setTab()
});
});

不确定这是否是问题所在,但我在这一行看到一个语法错误:

// split and int val tab num
curHash = parseInt(curHash.replace('%7C', '|')split('|')[1]);
在拆分之前应该有一段时间,如下所示:

// split and int val tab num
curHash = parseInt(curHash.replace('%7C', '|').split('|')[1]);

不确定这是否是问题所在,但我在这一行看到一个语法错误:

// split and int val tab num
curHash = parseInt(curHash.replace('%7C', '|')split('|')[1]);
在拆分之前应该有一段时间,如下所示:

// split and int val tab num
curHash = parseInt(curHash.replace('%7C', '|').split('|')[1]);

您想要的javascript函数是:

让encodedString=“1%7C2%7C3”
设decodedString=decodeURIComponent(encodedString)/“1 | 2 | 3”
让parts=decodedString.split(“|”)/[“1”、“2”、“3”]
设number=parts.map(part=>parseInt(part))/[1,2,3]

log({decodedString,parts,number})
您想要的javascript函数是:

让encodedString=“1%7C2%7C3”
设decodedString=decodeURIComponent(encodedString)/“1 | 2 | 3”
让parts=decodedString.split(“|”)/[“1”、“2”、“3”]
设number=parts.map(part=>parseInt(part))/[1,2,3]

log({decodedString,parts,numbers})
解决了这个问题-非常感谢您注意到这个错误!但是,如果您使用javascript函数来转换编码字符串,那么您的代码将更有弹性,而不是一次性替换代码:这确实解决了问题-非常感谢您注意到这个错误!但是,如果您使用javascript函数来转换编码字符串,那么您将拥有更具弹性的代码,而不是一次性替换: