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