2017-05-12 4 views
0

https://bugs.chromium.org/p/chromium/issues/detail?id=321638, https://bugs.chromium.org/p/chromium/issues/detail?id=452685을 치고 Chrome 패키지 앱을 Chrome 57 이상에서 작동시키려는 시도로 WebView에 HTML 페이지를 다음과 같이로드합니다. FileReader()readAsDataURL() 메서드를 사용하는 데이터 문자열입니다.HTML을 Webview로 데이터 문자열로로드 할 때 jQuery가 정의되지 않았습니다.

HTML 파일은 외부 CSS 및 JS 파일에 대한 참조를 포함하는 표준 사건입니다.

페이지의 맨 아래로, 예를 들어 <script src="../../shared/js/jquery-1.10.1.min.js"></script>을 사용하여 JS 스크립트를 다시 호출합니다. (끔찍한 경로를 무시하십시오).

이제 HTML 파일이 올바르게로드되고 구문 분석 된 것처럼 보입니다. 그러나 나이가 오래 걸리는 오류가 Uncaught ReferenceError: $ is not defined이됩니다.

jQuery 스크립트 태그 다음에 인라인 (다시 말해서 나를 쏘지 마십시오.) 스크립트가 있습니다.

HTML을 데이터 문자열로, 특히 WebView로로드 할 때 숨겨진주의 사항이 있습니까?

+0

당신이 콘솔에'jQuery'를 입력 할 수 있습니다 : 여기

다른 기준입니까? –

+0

'jQuery'를 입력하는 것은 정의되지 않은 상태로 되돌아옵니다.하지만'jQuery'를 사용하지 않아서'$ '를 사용하고 있습니다. 나는'$ ('# my-div');와 같은 호출을하고 결과를 돌려받을 수있다. –

답변

0

thread을 참조하십시오. Uncaught ReferenceError: $ is not defined. 오류가 발생했습니다. jQuery JavaScript가 포함되기 전에 준비 함수를 호출했기 때문일 수 있습니다. 먼저 jQuery 스크립트에 대한 참조를 넣어야한다. 이 정의되지 않은 또한,

+0

아, 일반적으로 올바른 것이지만이 경우 데이터 인코딩 된 HTML 파일에는 실제로 HTML 페이지의 javascript 블록 앞에 jQuery (라이브러리의 로컬 복사본)를로드하는 '