diff --git a/options.js b/options.js index 6c75bf0..99061c5 100644 --- a/options.js +++ b/options.js @@ -721,17 +721,21 @@ function response_changer_init(idname, titlenames, init_data, callback) { var opindex = titlenames.length var title = "" for (var i = 0; i < titlenames.length; i++) { - title += "" + titlenames[i] + "" + title += "" + titlenames[i].split('|')[0] + "" } title += "操作" title += "" - title += '' + title += '' $(cid).html(title) $($(trlast).find("button")[0]).click(function() { addRow() }) $($(trlast).find("button")[1]).click(function() { - addRow(["baidu.com", "file:///C:/Users/Administrator/Desktop/test.html"]) + addRow(["baidu.com", "file:///C:/Users/Administrator/Desktop/test.html", "redirect local."]) // 这里的最后一个值不能随意修改 + __cache_data() + }) + $($(trlast).find("button")[2]).click(function() { + addRow(["baidu.com", "console.log(123)", "change return data."]) // 这里的最后一个值不能随意修改 __cache_data() }) init_data = init_data || [] @@ -782,7 +786,14 @@ function response_changer_init(idname, titlenames, init_data, callback) { var thisIndex = trArray.length - 1; var addRowHtmlStr = "" for (var i = 0; i < titlenames.length; i++) { - addRowHtmlStr += "" + var [name, style, disabled] = titlenames[i].split('|') + style = style || 'width: 300px' + if (disabled == 'true'){ + disabled = 'disabled="disabled" readonly="readonly"' + }else if (disabled == 'false' || disabled == '' || disabled === undefined){ + disabled = '' + }else { throw Error('not in "true" or "false" string.') } + addRowHtmlStr += `` } "" $(trlast).before(addRowHtmlStr); @@ -809,7 +820,7 @@ function response_changer_init(idname, titlenames, init_data, callback) { chrome.storage.local.get(["response_changer"], function(res){ var init_data = JSON.parse(res["response_changer"] || "[]") localStorage.webRedirect = JSON.stringify(init_data) - response_changer_init("response_changer", ["(URL)字符串匹配", "重定向地址"], init_data, function(data){ + response_changer_init("response_changer", ["(URL)字符串匹配", "重定向地址或修改的字符串", "类型|width:120px|true"], init_data, function(data){ chrome.storage.local.set({ response_changer: JSON.stringify(data) }) diff --git a/tools/bgscript/replacer.js b/tools/bgscript/replacer.js index 34a1f82..813e078 100644 --- a/tools/bgscript/replacer.js +++ b/tools/bgscript/replacer.js @@ -33,14 +33,20 @@ chrome.webRequest.onBeforeRequest.addListener(function (details) { } var url = details.url; for (var i = 0; i < webRedirect.length; i++) { - var [mstr, rurl] = webRedirect[i] + var [mstr, rurl_or_data, type] = webRedirect[i] if (url.indexOf(mstr) != -1){ - if (rurl.trim().indexOf('file:///') == 0){ - var rdata = getLocalFileUrl(rurl) + if (type == 'redirect local.' && rurl_or_data.trim().indexOf('file:///') == 0){ + var rdata = getLocalFileUrl(rurl_or_data) if (rdata){ return { redirectUrl: rdata }; } } + if (type == 'change return data.'){ + var arr = url.split('.') + var rdata = "data:" + (typeMap[arr[arr.length-1]] || typeMap.txt) + ";charset=utf-8;base64," + + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(rurl_or_data)); + return { redirectUrl: rdata }; + } } } return {}