mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-26 21:21:53 +08:00
完善一下
This commit is contained in:
+27
-12
@@ -1,16 +1,31 @@
|
||||
(() => {
|
||||
if (window.injectedMessageListener) {
|
||||
return;
|
||||
}
|
||||
window.injectedMessageListener = true;
|
||||
|
||||
window.addEventListener('message', function onMessage(event) {
|
||||
if (event.source !== window || event.data.type !== 'CALL_FUNCTION') {
|
||||
return;
|
||||
if (window.injectedMessageListener) {
|
||||
return;
|
||||
}
|
||||
const value = event.data.value;
|
||||
const result = window[value.fn_name](value.args);
|
||||
window.postMessage({ type: 'FROM_PAGE', result: result }, '*');
|
||||
});
|
||||
window.injectedMessageListener = true;
|
||||
|
||||
window.addEventListener('message', function onMessage(event) {
|
||||
if (event.source !== window) {
|
||||
return;
|
||||
}
|
||||
let result = "";
|
||||
switch (event.data.type) {
|
||||
case 'CONTENT_CALL_FUNCTION':
|
||||
const fn_name = event.data.value.fn_name;
|
||||
const args = event.data.value.args;
|
||||
result = window[fn_name](args);
|
||||
break;
|
||||
case 'CONTENT_EVAL_CODE':
|
||||
const code = event.data.value.code;
|
||||
result = eval(code);
|
||||
// console.log("CONTENT_EVAL_CODE result: ", result);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (result && typeof result === 'object' && Object.keys(result).length > 0) {
|
||||
window.postMessage({type: 'FROM_PAGE', result: result}, '*');
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user