Внедрить компонент Vue в веб-страницу с помощью Quasar bex

#javascript #vue.js #quasar-framework #browser-extension

Вопрос:

Я создаю расширение для браузера с помощью quasar bex и хочу показать компонент vue на загруженной веб — странице

Я уже пытался использовать хук скрипта контента для добавления необработанного html и css на веб-страницу

Но я хочу добавить компонент из моей папки src/components, который также использует компоненты quasar, такие как q-btn и т. Д.

Есть ли какой-нибудь способ достичь этого !

Спасибо!

Ответ №1:

Хорошо , мне удалось решить эту проблему, я пишу решение, так что, возможно, кто-то еще может найти его полезным, я использовал iframe , чтобы внедрить свой компонент ИЛИ страницу в загруженную веб-страницу

Сначала я создал новый маршрут, скажем test , в routes.js как

 {
  name: "test",
  path: "/test",
  component: () => import("pages/test.vue"),
},
 

Затем я создал iframe и загрузил этот конкретный маршрут
в content-script.js как

 function createIframe() {
  const iframe = document.createElement("iframe");
  iframe.width = "220px";
  iframe.height = "220px";

  Object.assign(iframe.style, {
    position: "fixed",
    border: "none",
    zIndex: "10000",
  });

  // load that specific page 
  iframe.src = chrome.runtime.getURL("www/index.html#test");

  return iframe;
}
 

Вы можете установить ширину и высоту iframe и другие вещи, которые вам могут понадобиться
Затем вы можете использовать его в качестве элемента для инъекции в любом месте, например

 document.body.prepend(createIframe());
 

Поехали ! 🙂