2017-05-08 2 views
0

Ich bin Fehler immerInAppBroswer: Uncaught SyntaxError: Block-Bereich Deklarationen .. noch nicht unterstützt, wenn js in Android App geladen wird. außerhalb der Strict-Modus

Uncaught Syntax: Block-scoped Erklärungen (lassen, const, Funktion, Klasse) noch nicht außerhalb der Strict-Modus unterstützt

, wenn die folgende js zu dem HTML-Kopf hinzugefügt wird,

; 
;frappe.socket = { 
    open_tasks: {}, 
    open_docs: [], 
    emit_queue: [], 
    ... 
    doc_open: function(doctype, docname) { 
     "use strict"; 
     if (!frappe.socket.last_doc || (frappe.socket.last_doc[0] != doctype && frappe.socket.last_doc[0] != docname)) { 
      frappe.socket.socket.emit('doc_open', doctype, docname); 
     } 
     frappe.socket.last_doc = [doctype, docname]; 
    }, 
    ... 
} 

Hinweis Ich habe "use strict" hinzugefügt; basierend auf vorhandenen Stackoverflow-Threads. Ich bekomme immer noch den Fehler. Der Chrome-Debugger zeigt auf die folgende Zeile.

 frappe.socket.last_doc = [doctype, docname]; 

Der Browser ist eine Cordova App, die in Android Studio Emulator ausgeführt wird. Ich denke, dass es InAppBrowser verwendet. Die verbleibende js wird nach diesem Fehler nicht geladen. Ich bin mir nicht sicher, welcher Code einen strikten Modus benötigt.

Der gleiche Code läuft ohne "verwenden Sie streng" in Chrom, Edge, FF.

Antwort

0

Problem gefunden: Obwohl im Google Chrome Developer Window diese Zeile angezeigt wurde, war diese Zeile die erste Anweisung in der verkleinerten JS-Zeile.

On an der kompletten minimierte JS Linie sucht, dann ich das Problem in einer anderen Zeile später ist,

frappe.socket.file_watcher.on('reload_css', function(filename) { 
    let abs_file_path = "assets/" + filename; 

Hinzufügen „zu Beginn dieser Funktion streng verwenden das Problem behoben -.

Verwandte Themen