mirror of
https://github.com/tidys/cc-inspector-chrome
synced 2025-04-19 16:38:41 +00:00
加载注入脚本的css
This commit is contained in:
parent
7d4197aca5
commit
5d4f81fce8
@ -11,6 +11,7 @@ export enum DocumentEvent {
|
|||||||
Content2Inject = "content2inject",
|
Content2Inject = "content2inject",
|
||||||
EngineVersion = "engineVersion",
|
EngineVersion = "engineVersion",
|
||||||
GoogleAnalytics = "googleAnalytics",
|
GoogleAnalytics = "googleAnalytics",
|
||||||
|
LoadInjectCss = "load-inject-css",
|
||||||
}
|
}
|
||||||
export interface GoogleAnalyticsData {
|
export interface GoogleAnalyticsData {
|
||||||
event: GA_EventName;
|
event: GA_EventName;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// content.js 和原始界面共享DOM,具有操作dom的能力
|
// content.js 和原始界面共享DOM,具有操作dom的能力
|
||||||
// 但是不共享js,要想访问页面js,只能通过注入的方式
|
// 但是不共享js,要想访问页面js,只能通过注入的方式
|
||||||
import { ChromeConst } from "cc-plugin/src/chrome/const";
|
import { ChromeConst } from "cc-plugin/src/chrome/const";
|
||||||
import { debugLog, Page, PluginEvent } from "../../core/types";
|
import { debugLog, Msg, Page, PluginEvent } from "../../core/types";
|
||||||
import { ga } from "../../ga";
|
import { ga } from "../../ga";
|
||||||
import { GA_EventName } from "../../ga/type";
|
import { GA_EventName } from "../../ga/type";
|
||||||
import { DocumentEvent, GoogleAnalyticsData } from "../const";
|
import { DocumentEvent, GoogleAnalyticsData } from "../const";
|
||||||
@ -18,6 +18,10 @@ export function injectScript(url: string) {
|
|||||||
script.setAttribute("type", "text/javascript");
|
script.setAttribute("type", "text/javascript");
|
||||||
script.setAttribute("src", content);
|
script.setAttribute("src", content);
|
||||||
script.onload = function () {
|
script.onload = function () {
|
||||||
|
// 加载注入脚本界面的css
|
||||||
|
let css = chrome.runtime.getURL(ChromeConst.css.inject_view);
|
||||||
|
const event = new CustomEvent(DocumentEvent.LoadInjectCss, { detail: [css] });
|
||||||
|
document.dispatchEvent(event);
|
||||||
document.head.removeChild(script);
|
document.head.removeChild(script);
|
||||||
};
|
};
|
||||||
document.head.appendChild(script);
|
document.head.appendChild(script);
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
import { InjectView } from "./inject-view";
|
||||||
import { Inspector } from "./inspector";
|
import { Inspector } from "./inspector";
|
||||||
const inspector = new Inspector();
|
const inspector = new Inspector();
|
||||||
inspector.init();
|
inspector.init();
|
||||||
window["CCInspector"] = inspector;
|
window["CCInspector"] = inspector;
|
||||||
|
const ad = new InjectView();
|
||||||
|
32
cc-inspector/src/scripts/inject/inject-view.ts
Normal file
32
cc-inspector/src/scripts/inject/inject-view.ts
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import ccui from "@xuyanfeng/cc-ui";
|
||||||
|
import "@xuyanfeng/cc-ui/dist/ccui.css";
|
||||||
|
import "@xuyanfeng/cc-ui/iconfont/iconfont.css";
|
||||||
|
import { createApp } from "vue";
|
||||||
|
import { DocumentEvent } from "../const";
|
||||||
|
import App from "../inject-view/app.vue";
|
||||||
|
export class InjectView {
|
||||||
|
constructor() {
|
||||||
|
const el = document.createElement("div");
|
||||||
|
el.attachShadow({ mode: "closed" });
|
||||||
|
el.style.position = "absolute";
|
||||||
|
el.style.zIndex = "99999";
|
||||||
|
el.style.bottom = "0";
|
||||||
|
el.style.right = "0";
|
||||||
|
el.style.left = "0";
|
||||||
|
document.body.appendChild(el);
|
||||||
|
const app = createApp(App);
|
||||||
|
// ccui.uiElement.setDoc(document);
|
||||||
|
app.use(ccui);
|
||||||
|
app.mount(el);
|
||||||
|
|
||||||
|
document.addEventListener(DocumentEvent.LoadInjectCss, (event: CustomEvent) => {
|
||||||
|
const cssArray: string[] = event.detail;
|
||||||
|
cssArray.forEach((css) => {
|
||||||
|
const link = document.createElement("link");
|
||||||
|
link.href = css;
|
||||||
|
link.rel = "stylesheet";
|
||||||
|
el.appendChild(link);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user