簡體   English   中英

在 Chrome 擴展內容腳本中注入 Popper.js

[英]Inject Popper.js in Chrome Extension Content script

這是我的流程:內容腳本 -> 使用 background.js 獲取數據 -> 返回數據並將新的 HTML 注入網頁。

現在我必須使用 Popper.js 顯示一個工具提示,但我得到錯誤“文檔”未定義。 這很奇怪,因為我在 content-scripts.js 中。 注入后如何獲取新更新的 dom?

內容腳本.js

chrome.runtime.sendMessage({command: "sales_data", data: payload}, function(items) {
   let view = new SearchResultsView(items)
   view.injectToDom()
        
   const popcorn = document.querySelector('#popcorn'); // document is undefined
   const tooltip = document.querySelector('#tooltip'); // document is undefined
   createPopper(popcorn, tooltip, {
      placement: 'top',
   });

});

SearchResultsView/InjectDom()

   let html = `<div id="popcorn" aria-describedby="tooltip"></div>
                        <div id="tooltip" role="tooltip">
                        My tooltip
                        <div id="arrow" data-popper-arrow></div>
                        </div>`
    //...
    element.insertAdjacentHTML('afterbegin', html);

解決了。

我不得不導入tippy.js。

import { createPopper } from '@popperjs/core';
import tippy from 'tippy.js';


tippy('#button', {
   content: 'My tooltip!',
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM