From ec70ab30055c11b169ce4338e24188c6bcc52c20 Mon Sep 17 00:00:00 2001 From: cilame Date: Mon, 17 Oct 2022 13:11:11 +0800 Subject: [PATCH] add --- inject.js | 47 +++++++++++++++++++++++++++++++++-------------- popup.html | 8 +++++++- popup.js | 37 ++++++++++++++++++++++++++++--------- 3 files changed, 68 insertions(+), 24 deletions(-) diff --git a/inject.js b/inject.js index 774c67a..9771609 100644 --- a/inject.js +++ b/inject.js @@ -1290,23 +1290,36 @@ function injectfunc(e, window) { } var toggle = true + function change_toggle(toggle){ + e["config-hook-domobj"] = toggle + e["config-hook-Function"] = toggle + e["config-hook-eval"] = toggle + e["config-hook-cookie"] = toggle + e["config-hook-settimeout"] = toggle + e["config-hook-setinterval"] = toggle + e["config-hook-JSON.parse"] = toggle + e["config-hook-JSON.stringify"] = toggle + e["config-hook-decodeURI"] = toggle + e["config-hook-decodeURIComponent"] = toggle + e["config-hook-encodeURI"] = toggle + e["config-hook-encodeURIComponent"] = toggle + e["config-hook-escape"] = toggle + e["config-hook-unescape"] = toggle + e["config-hook-JSON.parse"] = toggle + e["config-hook-JSON.stringify"] = toggle + e["config-hook-decodeURI"] = toggle + e["config-hook-decodeURIComponent"] = toggle + e["config-hook-encodeURI"] = toggle + e["config-hook-encodeURIComponent"] = toggle + e["config-hook-escape"] = toggle + e["config-hook-unescape"] = toggle + e["config-hook-atob"] = toggle + e["config-hook-btoa"] = toggle + } e.logtogglefunc = function(event){ if (event.key == 'w' && event.altKey){ toggle = !toggle - e["config-hook-domobj"] = toggle - e["config-hook-Function"] = toggle - e["config-hook-eval"] = toggle - e["config-hook-cookie"] = toggle - e["config-hook-settimeout"] = toggle - e["config-hook-setinterval"] = toggle - e["config-hook-JSON.parse"] = toggle - e["config-hook-JSON.stringify"] = toggle - e["config-hook-decodeURI"] = toggle - e["config-hook-decodeURIComponent"] = toggle - e["config-hook-encodeURI"] = toggle - e["config-hook-encodeURIComponent"] = toggle - e["config-hook-escape"] = toggle - e["config-hook-unescape"] = toggle + change_toggle(toggle) if (toggle){ window.v_log('开启日志') }else{ @@ -1650,6 +1663,7 @@ var hookers = [ "config-hook-log-at", "config-myinject", "config-myinject_toggle", + "config-hook-log-toggle", ] function add_config_hook(input){ for (var i = 0; i < input.length; i++) { @@ -1697,7 +1711,12 @@ chrome.storage.local.get(hookers, function (result) { var replacer_injectfunc = (injectfunc + '').replace('$domobj_placeholder', make_domhooker_funcs()) var replacer_injectfunc = replacer_injectfunc.replace('$make_v_func', make_v+';') result["config-hook-cookie-match"] = (result["config-hook-cookie-match"] || '').trim() + var log_toggle = result["config-hook-log-toggle"] + delete result["config-hook-log-toggle"] // 分两次注入是因为要保证第一次注入的代码是不变的,这样可以直接在代码处打断点 inject_script(code_hookdom = `(${replacer_injectfunc})(${JSON.stringify(result)},window)`); + if(!log_toggle){ + inject_script(`globalConfig.logtogglefunc({key:'w',altKey:true})`) + } } if (result["config-myinject_toggle"]){ var myinject = result["config-myinject"] diff --git a/popup.html b/popup.html index 95188a6..ab0aac5 100644 --- a/popup.html +++ b/popup.html @@ -129,11 +129,17 @@
是否启用注入代码
+ +
开关输出日志
- + +
+
diff --git a/popup.js b/popup.js index 78557f9..2bb3200 100644 --- a/popup.js +++ b/popup.js @@ -10,10 +10,17 @@ document.querySelectorAll("input").forEach(function(v){ v.addEventListener("change", function (e) { if (v.type == 'checkbox'){ // console.log(e.target.dataset.key, e.target.checked) - if (e.target.dataset.key == 'config-hook-global' && e.target.checked){ - chrome.browserAction.setBadgeText({text: 'v'}); - }else{ - chrome.browserAction.setBadgeText({text: ''}); + if (e.target.dataset.key == 'config-hook-global'){ + if (e.target.checked){ + chrome.browserAction.setBadgeText({text: 'v'}); + }else{ + chrome.browserAction.setBadgeText({text: ''}); + } + } + if (e.target.dataset.key == 'config-hook-log-toggle'){ + chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ + chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {}); + }); } chrome.storage.local.set({ [e.target.dataset.key]: e.target.checked @@ -61,11 +68,11 @@ hook-domobj-显示func输出 }) }) -document.getElementById('logtoggle').addEventListener('click', function(e){ - chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ - chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {}); - }); -}) +// document.getElementById('logtoggle').addEventListener('click', function(e){ +// chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ +// chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {}); +// }); +// }) const bg = chrome.extension.getBackgroundPage() document.getElementById('clone_page').addEventListener('click', function(e){ @@ -82,4 +89,16 @@ document.getElementById('clone_page').addEventListener('click', function(e){ alert('获取html结构失败,请右键需要拷贝的页面的空白处,选择“打开 v_jstools 动态调试”。刷新页面后,确保页面资源加载充足后再重新点击“拷贝当前页面”') } }); +}) + +document.getElementById('update_page').addEventListener('click', function(e){ + function closePopup() { + window.close(); + document.body.style.opacity = 0; + setTimeout(function() { history.go(0); }, 300); + } + closePopup() + chrome.tabs.create({ + url: 'https://github.com/cilame/v_jstools', + }); }) \ No newline at end of file