Ok i've managed to solve it
I'm writing the solution , so may be someone else can found it useful
I used iframe
to inject my component OR page into the loaded web page
First i created a new route, say test
in routes.js like
{
name: "test",
path: "/test",
component: () => import("pages/test.vue"),
},
Then i created an iframe and loaded that specific route
in content-script.js like
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;
}
You can set your iframe width and height and other things you may need
Then you can use it as an element to inject anywhere like
document.body.prepend(createIframe());
Here we go ! :)