UNPKG

@ng1005/chrome-extension-common

Version:

chrome扩展通用库--消息与storage

67 lines (66 loc) 1.88 kB
// import { script } from "./injectAjax"; /** * 注入script * @param path * @param content * @returns */ export function injectScript (path:string,content?:string) { if (window.self === window.top) { const scriptNode = document.createElement('script'); scriptNode.type = "text/javascript"; if(path){ scriptNode.src= chrome.runtime.getURL(path); } if(content){ try { //IE浏览器认为script是特殊元素,不能再访问子节点;报错; scriptNode.appendChild(document.createTextNode(content)); } catch (ex) { scriptNode.text = content; } } // document.getElementsByTagName('head')[0].appendChild(scriptNode); // document.documentElement.appendChild(scriptNode); document.head.appendChild(scriptNode) scriptNode.addEventListener('load',()=>{ console.log('load script-----') }) return scriptNode; } } /** * 注入css * @param path * @param style * @returns */ export function injectCss(path:string,style?:string) { if (window.self === window.top) { if(path){ const linkElement = document.createElement('link'); linkElement.rel = 'stylesheet'; linkElement.href = chrome.runtime.getURL(path); document.documentElement.appendChild(linkElement); return linkElement; } if(style){ const styleElement = document.createElement('style'); styleElement.textContent = style; document.documentElement.appendChild(styleElement); return styleElement; } } } export function injectedScript (path:string) { if (window.self === window.top) { const scriptNode = document.createElement('script'); scriptNode.src= chrome.runtime.getURL(path); document.documentElement.appendChild(scriptNode); return scriptNode; } } export default{ injectCss,injectScript,injectedScript }