2016-10-31 3 views
0

Electron 1.4.4를 사용하여 웹 사이트에서 OpenID Connect를 테스트하고 jQuery가 올바르게 작동하지 않는 문제가있는 테스트 클라이언트를 만들려고합니다.전자를 사용하여 OpenID Connect 클라이언트 에뮬레이션하기

메인 프로세스에서 새 BrowserWindow를 사용하여 사이트를 열고 페이지를 봅니다. DevTools 콘솔을 보면 'jQuery가 정의되지 않았습니다'오류가 많이 발생합니다. Chrome에서 같은 페이지를로드 할 때 오류가 표시되지 않습니다.

UI 동료의 도움을 받아 조금 파고 들자 그는 몇 가지 차이점을 발견했습니다. Chrome에서 jQuery는 window 객체 (window.jQuery는 함수)에 정의되고 모듈은 정의되지 않습니다 (모듈은 정의되지 않음). Chromium 53에서는 jQuery가 정의되지 않았으며 (jQuery 및 window.jQuery는 정의되지 않음) 모듈이 정의되었습니다 (모듈은 객체 임).

관련성이 있지만 페이지가 다른 팀에서 관리하는 Drupal에 의해 생성되었는지는 확실하지 않습니다.

감사합니다. Wes.

+0

'webPreferences'에'nodeIntegration : false'를 추가하면 CommonJS가 비활성화되고 JQuery가 올바르게 설치되지만 기본 프로세스에서 렌더러 프로세스의 DOM에 액세스하는 방법을 알 수 없습니다. – Wes

답변

0

이 모양은 this post과 같습니다.

게시물의 아래 솔루션을 사용하면 jQuery에 계속 액세스하면서 노드 통합을 유지할 수 있습니다.

window. $ = window.jQuery = require ('./ path/to/jquery');

"npm install --save jquery"를 사용하면 "require ('jquery')"가 해결되므로 jquery에 대한 경로를 지정할 필요가 없습니다.

게시물에 연결하면이 문제를 해결할 수있는 몇 가지 다른 방법이 있습니다. 처음이 문제에 부딪혔을 때, 나를 미치게 만들었다.

관련 문제