-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
56 lines (54 loc) · 1.57 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// import './estilo.css'; // Usar import está mal, mejor usar fetch.
function bajar(url,json,retrollamada){
var tipo = undefined
switch(json){
case false:tipo="text";break;
case "text":tipo="text";break;
case "texto":tipo="text";break;
case true:tipo="json";break;
case "json":tipo="json";break;
}
fetch(url)
.then(
x=>tipo=="text"?x.text()
:tipo=="json"?x.json()
:x.text()
).then(retrollamada)
}
function insertar_estilo_desde_texto(url,texto){
var estilo = document.createElement("style")
estilo.innerHTML = texto
estilo.setAttribute("href",url)
document.head.appendChild(estilo)
}
function insertar_estilo_desde_ruta(url,dominio){
var estilo = document.createElement("link")
var ahora = Date.now()
var url_2 = dominio && url.replace(location.origin,dominio)
var url_ahora = url_2 + "?" + "tiempo=" + Date.now()
estilo.setAttribute("rel","stylesheet")
estilo.href = url_ahora
document.head.appendChild(estilo)
}
function bajar_estilo(url,dominio){
bajar(url,"texto",x=>{
var minúsculas = x.toLowerCase()
var no_es_html = minúsculas.match(/^<!doctype html>/)==null
var es_css = no_es_html
if(es_css){
insertar_estilo_desde_texto(url,x)
}else{
console.log("No se pudo bajar el estilo desde StackBlitz.")
try{
insertar_estilo_desde_ruta(url,dominio)
}catch(e){
console.log("No se pudo agregar el estilo al head.")
}
}
})
}
function programa(){
var url_estilo = location.href+"estilo.css"
bajar_estilo(url_estilo,"https://arteze.github.io/arecorasta")
}
programa()