调用active tab js func

This commit is contained in:
go0p
2024-05-15 14:43:04 +08:00
committed by go0p
parent 0c8f82b441
commit e150379c7f
6 changed files with 99 additions and 87 deletions
+2 -2
View File
@@ -17,8 +17,8 @@ function App() {
}}
>
<div className="App">
<Contro/>
<Proxifier/>
{/*<Contro/>*/}
{/*<Proxifier/>*/}
<Eval/>
<EvalInTab/>
+30 -19
View File
@@ -10,26 +10,27 @@ export const EvalInTab: React.FC<EvalInTabProps> = () => {
const [inputData, setInputData] = useState("");
const [isScriptInjected, setIsScriptInjected] = useState(false);
useEffect(() => {
const onConnectListener = (port: chrome.runtime.Port) => {
console.assert(port.name === "content-script");
port.onMessage.addListener(function (msg) {
console.log("on connect", msg)
});
port.onDisconnect.addListener(function () {
console.error("Disconnected from port.");
});
port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
};
chrome.runtime.onConnect.addListener(onConnectListener);
// return () => {
// chrome.runtime.onConnect.removeListener(onConnectListener);
// };
}, [inputData]);
// useEffect(() => {
// // const onConnectListener = (port: chrome.runtime.Port) => {
// // console.assert(port.name === "content-script");
// // port.onMessage.addListener(function (msg) {
// // console.log("on connect", msg)
// // });
// // port.onDisconnect.addListener(function () {
// // console.error("Disconnected from port.");
// // });
// // port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
// // };
// //
// // chrome.runtime.onConnect.addListener(onConnectListener);
//
// // return () => {
// // chrome.runtime.onConnect.removeListener(onConnectListener);
// // };
// }, [inputData]);
const handleClick = async () => {
const tabId = await wsc.getTabId();
if (!isScriptInjected) {
chrome.scripting.executeScript({
target: {tabId: await wsc.getTabId()},
@@ -37,10 +38,20 @@ export const EvalInTab: React.FC<EvalInTabProps> = () => {
}).then(injectResults => {
console.log(injectResults)
setIsScriptInjected(true);
const port = chrome.tabs.connect(tabId, {name: "ex-to-content"})
port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
port.onMessage.addListener(function (msg) {
console.log(msg)
})
});
}
console.log("injected script")
const port = chrome.tabs.connect(tabId, {name: "ex-to-content"})
port.postMessage({type: "TEST", fn_name: "Encrypt", args: inputData});
port.onMessage.addListener(function (msg) {
console.log(msg)
})
};
const handleInputChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {