增加支持了对中文的解码

This commit is contained in:
free will
2020-10-07 10:53:59 +08:00
parent 1fbb41efaf
commit 33b998ccda
+15 -25
View File
@@ -74,8 +74,8 @@ function reload(result) {
/* Auto reload */
browser.storage.onChanged.addListener(function (changes, area) {
// if (area == "local") {
load("storage", reload);
loadMisHost();
load("storage", reload);
loadMisHost();
// }
});
@@ -204,7 +204,7 @@ function downloadOnlineURLs() {
var json;
// content may be a string or json object
if (typeof content === "string") {
json = JSON.parse(content);
json = JSON.parse(content);
} else {
json = content;
}
@@ -380,7 +380,7 @@ function getSearchContent(uriString) {
}
var content="";
if(uriString.indexOf("//www.baidu.com")>=0){
// &wd= [end] 或 &wd= &
// &wd= [end] 或 &wd= &
var startIndex=getPositiveNum(uriString.indexOf("?wd="))
+getPositiveNum(uriString.indexOf("&wd="))+4;
var lastString=uriString.substring(startIndex);
@@ -391,7 +391,7 @@ function getSearchContent(uriString) {
content=lastString;
}
}else if(uriString.indexOf("//www.google.com")>=0){
// ?q= &
// ?q= &
var startIndex=getPositiveNum(uriString.indexOf("?q="))
+getPositiveNum(uriString.indexOf("&q="))+3;
var lastString=uriString.substring(startIndex);
@@ -402,7 +402,7 @@ function getSearchContent(uriString) {
content=lastString;
}
}else if(uriString.indexOf("//www.sogou.com")>=0){
// &query= [end]
// &query= [end]
var startIndex=getPositiveNum(uriString.indexOf("?query="))
+getPositiveNum(uriString.indexOf("&query="))+7;
var lastString=uriString.substring(startIndex);
@@ -446,7 +446,8 @@ function getSearchContent(uriString) {
content=lastString;
}
}else{}
return content.replace(/%2F/g,'/');
return decodeURIComponent(content);
// return content.replace(/%2F/g,'/');
}
// 判断某个字符串是否包含映射表中的表项
@@ -488,18 +489,6 @@ function isRightfulPrefix(urlString){
// 判断某个字符串是否是映射表的一个前缀表项
// 判断某个字符串是否包含映射表中的表项
function isRulesPrefix(urlString) {
// alert("要判断的urlString: "+urlString);
// 先进行模糊判断
// if(urlString===''){
// return false;
// }
// if(urlString.indexOf('.')>=0){
// return false;
// }
// if((urlString.indexOf('/')!==0)&&(urlString.indexOf('%2F')!==0)){
// // alert("没/");
// return false;
// }
if(!isRightfulPrefix(urlString)){
return false;
}
@@ -554,7 +543,7 @@ function cutHttpHead(uri) {
// 判断是http:还是https:
var startIndex=0;
if(uri.indexOf("https:")>=0){
startIndex=8;
startIndex=8;
}else if(uri.indexOf("http:")>=0){
startIndex=7;
}
@@ -564,9 +553,9 @@ function cutHttpHead(uri) {
}else{
var uritmp=uri.substr(startIndex);
if(uritmp.indexOf(0)==='/'){
return uritmp;
return decodeURIComponent(uritmp);
}else{
return '/'+uritmp;
return decodeURIComponent('/'+uritmp);
}
}
}
@@ -607,10 +596,11 @@ function handleRedirect(details) {
// alert("sc: "+searchContent);
// 判断url去掉头部之后是否直接命中本地映射表
var cutHeadString=cutHttpHead(details.url);
// alert(cutHeadString);
// 如果该搜索内容或网址命中了缓存中的映射表前缀,则重定向
if(isRulesPrefix(searchContent)||isRulesPrefix(cutHeadString)){
// alert("sc: "+searchContent+" isRules: "+isRulesPrefix(searchContent));
// alert("cut: "+cutHeadString+" isRules: "+isRulesPrefix(cutHeadString));
alert("sc: "+searchContent+" isRules: "+isRulesPrefix(searchContent));
alert("cut: "+cutHeadString+" isRules: "+isRulesPrefix(cutHeadString));
var prefixTemp="";
if(searchContent!==""){
prefixTemp=searchContent;
@@ -716,7 +706,7 @@ function handleRedirect(details) {
}else{
// 如果不是进行搜索,且本地没有命中映射表,则异步请求mis更新映射表
if((misEnableState===true)&&isRightfulPrefix(cutHeadString)){
updateStorageBasedUri(details.url);
updateStorageBasedUri(details.url);
}
// 并进行重定向
if (_redirect_promise_supported) {