如何解决Chrome 扩展程序:从内容脚本获取 DOM -> 背景 -> 弹出窗口?
每次激活 chrome 扩展程序(单击图标)时,我都试图将当前选项卡的 DOM 元素从内容脚本获取到弹出窗口。我的一般想法是,我在弹出窗口中向后台发送一条消息,然后向内容脚本发送一条消息,内容脚本将 dom 作为响应,然后后台发送回弹出窗口(如果我正在考虑这个,请告诉我都错了)。我可能会遇到异步问题。
当我尝试在 App.js 中记录我的响应时,我得到了未定义的信息。我也是 JS 新手,所以请原谅我的任何愚蠢的错误...
EDIT 似乎 background.js 甚至没有收到消息(尽管它更早工作)。
content.js
/*global chrome*/
chrome.runtime.onMessage.addListener((msg,sender,sendResponse) => {
if (msg.type === "dom") sendResponse(document.body.innerHTML);
});
background.js
/*global chrome*/
chrome.runtime.onMessage.addListener((msg,sendResponse) => {
if (msg.type == "bg") {
const dom;
chrome.runtime.sendMessage({ type: "dom" },(response) => {
dom = response;
});
sendResponse(dom);
}
});
Popup.js
/*global chrome*/
import React,{ useEffect } from "react";
const Popup = () => {
useEffect(() => {
chrome.runtime.sendMessage({ type: "bg" },(response) => {
console.log(response);
});
},[]);
return (
<div>
<h1>Test</h1>
</div>
);
};
export default Popup;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。