mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-25 20:51:52 +08:00
调用active tab js func
This commit is contained in:
@@ -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>) => {
|
||||
|
||||
Reference in New Issue
Block a user