@ng1005/chrome-extension-common
Version:
chrome扩展通用库--消息与storage
67 lines (66 loc) • 1.88 kB
text/typescript
// 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
}