ES6 und IOS
Hallo Zusammen,
ich baue gerade eine SelectorEngine für einen sicherheitskritischen Bereich in dem keine Fremdlibs eingesetzt werden sollen (dürfen).
Das wird auch gut bezahlt, deswegen ist mir das ganz recht.
Nachfolgend ein kleiner Auszug davon, es exisitiert schon wesentlich mehr Code.
Auf dem Desktop und auf Android läuft das so, wie ich es gerne hätte.
Ein Test auf dem IPAD verläuft nicht so positiv.
Hier läuft es erst, wenn ich es durch babel jage mit folgendem Ergebnis (nur das Script):
Weiß einer von euch, ob IOS hier nur hinterherhinkt oder habe ich im Ausgangscode einen Fehler?
Hallo Zusammen,
ich baue gerade eine SelectorEngine für einen sicherheitskritischen Bereich in dem keine Fremdlibs eingesetzt werden sollen (dürfen).
Das wird auch gut bezahlt, deswegen ist mir das ganz recht.
Nachfolgend ein kleiner Auszug davon, es exisitiert schon wesentlich mehr Code.
HTML-Code:
<!DOCTYPE html> <html lang="de"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .red{color:red;} .big{font-size:3em;} </style> </head> <body> <script> 'use strict'; var $ = ( function (selector = null) { class select { constructor (selector){ this.nodes = (selector === 'document') ? [document] : (selector === 'window') ? [window] : (selector.nodeType) ? [selector] : document.querySelectorAll(selector) } each = cb => (this.nodes.forEach( i => cb(i)), this) addClass = myClasses => this.each( i => i.classList.add(...myClasses.split(',').map(s => s.trim())), this) create = myNode => $(this.nodes[0].appendChild(document.createElement(myNode))) setText = myText => this.each( i => i.innerText = myText, this) } return selector => new select(selector) })(); $(`body`) .create(`h1`) .addClass(`red,big`) .setText(`myNewNode`) </script> </body> </html>
Ein Test auf dem IPAD verläuft nicht so positiv.
Hier läuft es erst, wenn ich es durch babel jage mit folgendem Ergebnis (nur das Script):
Code:
'use strict'; // Ok let´s build an own Selector engine function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var $ = function (selector = null) { class select { constructor(selector) { _defineProperty(this, "each", cb => (this.nodes.forEach(i => cb(i)), this)); _defineProperty(this, "addClass", myClasses => this.each(i => i.classList.add(...myClasses.split(',').map(s => s.trim())), this)); _defineProperty(this, "create", myNode => $(this.nodes[0].appendChild(document.createElement(myNode)))); _defineProperty(this, "setText", myText => this.each(i => i.innerText = myText, this)); this.nodes = selector === 'document' ? [document] : selector === 'window' ? [window] : selector.nodeType ? [selector] : document.querySelectorAll(selector); } } return selector => new select(selector); }(); $(`body`).create(`h1`).addClass(`red,big`).setText(`myNewNode`);
Kommentar