|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function isElement(obj) { |
|
|
|
|
|
try { |
|
|
|
|
|
// Using W3 DOM2 (works for FF, Opera and Chrome) |
|
|
|
|
|
return obj instanceof HTMLElement; |
|
|
|
|
|
} catch(e) { |
|
|
|
|
|
//Browsers not supporting W3 DOM2 don't have HTMLElement and |
|
|
|
|
|
//an exception is thrown and we end up here. Testing some |
|
|
|
|
|
//properties that all elements have (works on IE7) |
|
|
|
|
|
return (typeof obj==="object") && |
|
|
|
|
|
(obj.nodeType===1) && (typeof obj.style === "object") && |
|
|
|
|
|
(typeof obj.ownerDocument ==="object"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function appendCTX(el, ctx){ |
|
|
|
|
|
if (isElement(ctx)){ |
|
|
|
|
|
el.appendChild(ctx); |
|
|
|
|
|
} else { |
|
|
|
|
|
var t = document.createTextNode(ctx.toString()); |
|
|
|
|
|
el.appendChild(t); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export function el(ename, ctx, cls, attr){ |
|
|
|
|
|
var e = document.createElement(ename); |
|
|
|
|
|
if (ctx){ |
|
|
|
|
|
if (ctx instanceof Array){ |
|
|
|
|
|
ctx.forEach(item => appendCTX(el, item)); |
|
|
|
|
|
} else { |
|
|
|
|
|
appendCTX(el, ctx); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (cls){ |
|
|
|
|
|
var cl = cls; |
|
|
|
|
|
if (typeof(cl) === "String") |
|
|
|
|
|
cl = cl.split(" "); |
|
|
|
|
|
if (cl instanceof Array){ |
|
|
|
|
|
cl.forEach(c => el.classList.add(c.trim())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (attr){ |
|
|
|
|
|
var keys = Object.keys(attr); |
|
|
|
|
|
keys.forEach(function(key){ |
|
|
|
|
|
if (attr.hasOwnProperty(key)){ |
|
|
|
|
|
var att = document.createAttribute(key.toString()); |
|
|
|
|
|
if (typeof(attr[key]) === "String"){ |
|
|
|
|
|
att.value = attr[key]; |
|
|
|
|
|
el.setAttributeNode(att); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export const header = el.bind(null, "header"); |
|
|
|
|
|
export const title = el.bind(null, "title"); |
|
|
|
|
|
export const script = el.bind(null, "script"); |
|
|
|
|
|
export const link = el.bind(null, "link"); |
|
|
|
|
|
export const meta = el.bind(null, "meta"); |
|
|
|
|
|
export const div = el.bind(null, "div"); |
|
|
|
|
|
export const span = el.bind(null, "span"); |
|
|
|
|
|
export const a = el.bind(null, "a"); |
|
|
|
|
|
export const p = el.bind(null, "p"); |
|
|
|
|
|
export const b = el.bind(null, "b"); |
|
|
|
|
|
export const i = el.bind(null, "i"); |
|
|
|
|
|
export const br = el.bind(null, "br"); |
|
|
|
|
|
export const ol = el.bind(null, "ol"); |
|
|
|
|
|
export const ul = el.bind(null, "ul"); |
|
|
|
|
|
export const li = el.bind(null, "li"); |
|
|
|
|
|
export const em = el.bind(null, "em"); |
|
|
|
|
|
export const font = el.bind(null, "font"); |
|
|
|
|
|
export const h1 = el.bind(null, "h1"); |
|
|
|
|
|
export const h2 = el.bind(null, "h2"); |
|
|
|
|
|
export const h3 = el.bind(null, "h3"); |
|
|
|
|
|
export const h4 = el.bind(null, "h4"); |
|
|
|
|
|
export const h5 = el.bind(null, "h5"); |
|
|
|
|
|
export const h6 = el.bind(null, "h6"); |
|
|
|
|
|
export const hr = el.bind(null, "hr"); |
|
|
|
|
|
export const blockquote = el.bind(null, "blockquote"); |
|
|
|
|
|
export const button = el.bind(null, "button"); |
|
|
|
|
|
export const nav = el.bind(null, "nav"); |
|
|
|
|
|
export const canvas = el.bind(null, "canvas"); |
|
|
|
|
|
export const caption = el.bind(null, "caption"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|