This commit is contained in:
cilame 2022-10-17 13:11:11 +08:00
parent cffd979c14
commit ec70ab3005
3 changed files with 68 additions and 24 deletions

View File

@ -1290,9 +1290,7 @@ function injectfunc(e, window) {
} }
var toggle = true var toggle = true
e.logtogglefunc = function(event){ function change_toggle(toggle){
if (event.key == 'w' && event.altKey){
toggle = !toggle
e["config-hook-domobj"] = toggle e["config-hook-domobj"] = toggle
e["config-hook-Function"] = toggle e["config-hook-Function"] = toggle
e["config-hook-eval"] = toggle e["config-hook-eval"] = toggle
@ -1307,6 +1305,21 @@ function injectfunc(e, window) {
e["config-hook-encodeURIComponent"] = toggle e["config-hook-encodeURIComponent"] = toggle
e["config-hook-escape"] = toggle e["config-hook-escape"] = toggle
e["config-hook-unescape"] = 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
change_toggle(toggle)
if (toggle){ if (toggle){
window.v_log('开启日志') window.v_log('开启日志')
}else{ }else{
@ -1650,6 +1663,7 @@ var hookers = [
"config-hook-log-at", "config-hook-log-at",
"config-myinject", "config-myinject",
"config-myinject_toggle", "config-myinject_toggle",
"config-hook-log-toggle",
] ]
function add_config_hook(input){ function add_config_hook(input){
for (var i = 0; i < input.length; i++) { 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 = (injectfunc + '').replace('$domobj_placeholder', make_domhooker_funcs())
var replacer_injectfunc = replacer_injectfunc.replace('$make_v_func', make_v+';') var replacer_injectfunc = replacer_injectfunc.replace('$make_v_func', make_v+';')
result["config-hook-cookie-match"] = (result["config-hook-cookie-match"] || '').trim() 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)`); 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"]){ if (result["config-myinject_toggle"]){
var myinject = result["config-myinject"] var myinject = result["config-myinject"]

View File

@ -129,11 +129,17 @@
<input type="checkbox" data-key="config-myinject_toggle"><div class="slider"></div> <input type="checkbox" data-key="config-myinject_toggle"><div class="slider"></div>
</label> </label>
<div style="float: right; padding: 10px">是否启用注入代码</div> <div style="float: right; padding: 10px">是否启用注入代码</div>
<label class="switch">
<input type="checkbox" data-key="config-hook-log-toggle"><div class="slider"></div>
</label>
<div style="float: right; padding: 10px">开关输出日志</div>
<div> <div>
<button id="showoptions" class="button" style="vertical-align:middle"><span>打开配置页面</span></button> <button id="showoptions" class="button" style="vertical-align:middle"><span>打开配置页面</span></button>
<button id="addlistener" class="button2" style="vertical-align:middle"><span>生成临时环境</span></button> <button id="addlistener" class="button2" style="vertical-align:middle"><span>生成临时环境</span></button>
<button id="logtoggle" class="button2" style="vertical-align:middle"><span>开关输出日志</span></button> <!-- <button id="logtoggle" class="button2" style="vertical-align:middle"><span>开关输出日志</span></button> -->
<button id="clone_page" class="button2" style="vertical-align:middle"><span>拷贝当前页面</span></button> <button id="clone_page" class="button2" style="vertical-align:middle"><span>拷贝当前页面</span></button>
<hr>
<button id="update_page" class="button2" style="vertical-align:middle"><span>工具更新地址</span></button>
</div> </div>
<script src="popup.js"></script> <script src="popup.js"></script>
</body> </body>

View File

@ -10,11 +10,18 @@ document.querySelectorAll("input").forEach(function(v){
v.addEventListener("change", function (e) { v.addEventListener("change", function (e) {
if (v.type == 'checkbox'){ if (v.type == 'checkbox'){
// console.log(e.target.dataset.key, e.target.checked) // console.log(e.target.dataset.key, e.target.checked)
if (e.target.dataset.key == 'config-hook-global' && e.target.checked){ if (e.target.dataset.key == 'config-hook-global'){
if (e.target.checked){
chrome.browserAction.setBadgeText({text: 'v'}); chrome.browserAction.setBadgeText({text: 'v'});
}else{ }else{
chrome.browserAction.setBadgeText({text: ''}); 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({ chrome.storage.local.set({
[e.target.dataset.key]: e.target.checked [e.target.dataset.key]: e.target.checked
}) })
@ -61,11 +68,11 @@ hook-domobj-显示func输出
}) })
}) })
document.getElementById('logtoggle').addEventListener('click', function(e){ // document.getElementById('logtoggle').addEventListener('click', function(e){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ // chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {}); // chrome.tabs.sendMessage(tabs[0].id, {action: {type:'logtoggle', info: 'logtoggle'}}, function(response) {});
}); // });
}) // })
const bg = chrome.extension.getBackgroundPage() const bg = chrome.extension.getBackgroundPage()
document.getElementById('clone_page').addEventListener('click', function(e){ document.getElementById('clone_page').addEventListener('click', function(e){
@ -83,3 +90,15 @@ document.getElementById('clone_page').addEventListener('click', function(e){
} }
}); });
}) })
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',
});
})