Ankündigung

Einklappen
Keine Ankündigung bisher.

IOS ES6 Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IOS ES6 Problem

    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.

    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>
    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):

    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`);
    Weiß einer von euch, ob IOS hier nur hinterherhinkt oder habe ich im Ausgangscode einen Fehler?


  • #2
    Ich hab keine IOS Geräte, aber du kannst auf https://caniuse.com/#search=es6 nachschauen, was du alles verwenden kannst.

    Auch wäre es hilfreich, mal in den Dev Optionen dir die Browser Logs anzuschauen. Dort siehst du dann auch woran es scheitert.
    https://www.lifewire.com/activate-th...-safari-445798

    PS:
    ch baue gerade eine SelectorEngine für einen sicherheitskritischen Bereich in dem keine Fremdlibs eingesetzt werden sollen
    Gerade in Sicherheitskritischen Bereichen würde ich eher Software einsetzen, welche ausführlich getestet und gewartet wird. Ggf. sogar Security Audits und Enterprise Support bieten, anstatt selber etwas zusammen zu stricken, was hinterher anfälliger ist.

    Kommentar


    • #3
      Zeichen32

      caniuse ist mir ein Begriff -

      Der eine nennt es Programmieren, der andere Stricken. Warum sollen eigene Libs anfälliger sein. Ohne Kenntnis der Umfangs sind solche Äußerungen entbehrlich.

      Ansonsten wenig hilfreich....

      Die Frage war : Weiß einer von euch, ob IOS hier nur hinterherhinkt oder habe ich im Ausgangscode einen Fehler?

      Kommentar


      • #4
        Zitat von zorro001 Beitrag anzeigen
        Der eine nennt es Programmieren, der andere Stricken. Warum sollen eigene Libs anfälliger sein. Ohne Kenntnis der Umfangs sind solche Äußerungen entbehrlich.

        Ansonsten wenig hilfreich....
        Nicht gleich wieder persönlich nehmen bitte, der Hinweis ist absolut gerechtfertigt!
        Wenn Du der Meinung bist, dass Du das entsprechende KnowHow zum Thema Sicherheit und dessen Umsetzung hast, kannst Du es ja gerne selbst machen. Wundere Dich aber nicht, wenn dann bei zukünftigen Fragen auf Sicherheitslücken hingewiesen werden, an die Du nicht gedacht und nach denen Du nicht gefragt hast.

        und jetzt bitte BTT, danke.


        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Arne Drews


          Meine Frage war eindeutig und kann inzwischen ebenso eindeutig beantwortet werden. WebKit hinkt hinterher. Noch führt kein Weg an Babelon vorbei. Hierzu muss man sich nur einen aktuellen Webkit-Browser installieren und nicht extra einen Mac zulegen um IOS Safari zu debuggen.

          Es hätte ja sein können, dass ein Beteiligter hier evtl. im Thema ist.

          Kommentar

          Lädt...
          X