首页 > 解决方案 > 如何重新加载弹出窗口而不关闭以从内容中检索新数据?

问题描述

我在 chrome 扩展的内容脚本中有此代码。

new MutationObserver(() => {
    var dataImage: any = document.getElementsByClassName('image');
    var dataName: any = document.getElementsByClassName('name');
    var dataTitle: any = document.getElementsByClassName('title');

    var listData: Array<any> = [];

    for (let x = 0; x < dataImage.length; x++) {
      const image = dataImage[x]?.firstElementChild?.src;
      const name = dataName[x]?.innerText;
      const title = dataTitle[x]?.firstElementChild?.innerText;
      const web = dataName[x]?.firstElementChild?.href;

      listData.push({
        image: image,
        name: name,
        title: title,
        web: web,
      });
    }

    const getData = (listData: any) => {
      chrome.runtime.sendMessage({
        total_elements: listData, // or whatever you want to send
      });
    };
    getData(listData);
    localStorage.setItem('taskdata', JSON.stringify(listData));
}).observe(document, { subtree: true, childList: true });

popup.js

    chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
      if (request.total_elements) localStorage.setItem('leadList', JSON.stringify(request.total_elements));
    });
     const getLeadList = localStorage.getItem('leadList');
    const initLeadList = getLeadList === null ? [] : JSON.parse(getLeadList);

initLeadList.map((x) => {
return (
<>{x.name}{x.title}
</>
)
}

更新内容 js 数据时,如何实时重新加载弹出窗口?

我的弹出窗口仅在我重新加载时运行,然后关闭然后重新打开。我怎样才能让新数据实时反映在弹出窗口中?

是window.open window.close吗?

更新内容 js 数据时,如何实时重新加载弹出窗口?

我的弹出窗口仅在我重新加载时运行,然后关闭然后重新打开。我怎样才能让新数据实时反映在弹出窗口中?

标签: javascriptgoogle-chrome-extensioncontent-script

解决方案


推荐阅读