2017-05-08 6 views
0

내가 오류InAppBroswer : Uncaught SyntaxError : Android 앱에서 js를로드 할 때 블록 스코핑 선언이 아직 지원되지 않습니다. 외부 엄격 모드

을 얻고있다

catch되지 않은 구문 에러 : 아직 엄격 모드 다음 JS가 HTML 헤드에 추가됩니다

밖에 지원되지 블록 범위의 선언 (하자, CONST, 함수, 클래스)

; 
;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]; 
    }, 
    ... 
} 

참고 "use strict"를 추가했습니다. 기존의 스택 오버 플로우 스레드를 기반으로합니다. 오류가 계속 발생합니다. 크롬 디버거는 아래 라인을 가리 킵니다.

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

브라우저는 Android Studio Emulator에서 실행되는 cordova 앱입니다. InAppBrowser를 사용하고 있다고 생각합니다. 이 오류가 발생하면 나머지 js가로드되지 않습니다. 엄격한 모드가 필요한 코드를 잘 모르겠습니다.

동일한 코드가 chrome, Edge, FF에서 "use strict"없이는 정상적으로 실행됩니다.

답변

0

발견 : Google 크롬 개발자 창이이 행을 표시했지만이 행은 축소 된 JS 행의 첫 번째 문이었습니다.

전체 축소 된 JS 라인보고에

, 나는

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

이 기능의 시작 엄격한 사용 "문제가 해결 추가 문제가 나중에 다른 라인에서 발견 -.