mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-27 05:31:53 +08:00
add inject code
This commit is contained in:
+59
-1
@@ -22,6 +22,10 @@ export class WebSocketManager {
|
||||
this.startHeartbeat();
|
||||
};
|
||||
|
||||
this.socket.onmessage = (event) => {
|
||||
this.handleMessage(event.data);
|
||||
};
|
||||
|
||||
this.socket.onclose = () => {
|
||||
chrome.runtime.sendMessage({action: ActionType.STATUS, connected: false});
|
||||
};
|
||||
@@ -69,4 +73,58 @@ export class WebSocketManager {
|
||||
isConnected() {
|
||||
return this.socket && this.socket.readyState === WebSocket.OPEN;
|
||||
}
|
||||
}
|
||||
|
||||
handleMessage(message) {
|
||||
console.log("message", message)
|
||||
// 解析消息
|
||||
try {
|
||||
// 解析从WebSocket接收到的JSON数据
|
||||
let code = message;
|
||||
getTabId().then((tabId) => {
|
||||
// 确保tabId和code有效
|
||||
if (typeof tabId === 'number' && typeof code === 'string') {
|
||||
// 在指定的tabId上执行脚本
|
||||
chrome.scripting.executeScript({
|
||||
target: {tabId: tabId},
|
||||
// function: getTitle,
|
||||
function: log,
|
||||
args: [code]
|
||||
}, (injectionResults) => {
|
||||
// 处理脚本执行的结果,如日志记录等
|
||||
console.log('Script executed:', injectionResults);
|
||||
});
|
||||
} else {
|
||||
console.error('Received malformed message:', message);
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error parsing message from WebSocket:', err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getTitle() {
|
||||
return document.title;
|
||||
}
|
||||
|
||||
function log(message) {
|
||||
return console.log(message);
|
||||
}
|
||||
|
||||
function getTabId() {
|
||||
return new Promise((resolve, reject) => {
|
||||
chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
|
||||
if (tabs.length) {
|
||||
resolve(tabs[0].id);
|
||||
} else {
|
||||
reject('No active tab found');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// chrome.tabs.query({}, (tabs) => {
|
||||
// tabs.forEach(function (tab) {
|
||||
// console.log(tab.id); // 输出每个标签页的ID
|
||||
// });
|
||||
// })
|
||||
Reference in New Issue
Block a user