2013-10-18 1 views
1

제목과 마찬가지로 jfx webview에 jquery를 포함해야합니다. 내가 지금까지 할 수있는 일은 리소스 폴더의 CSS 스타일 시트를 포함하는 것입니다.하지만 내 응용 프로그램은 스윙이되지만 스윙의 jtextpane이 많은 CSS를 지원하지 않기 때문에 더 나은 CSS 지원을 위해 javafx의 webview를 사용합니다.javafx webview에 jquery를 어떻게 포함합니까?

답변

3

저는 Stephen Katulka's 대답을 좋아합니다. Stephen의 접근 방식이 도움이된다면 더 좋은 답변 일 수 있습니다.


업데이트 : 그냥 샘플 코드이 응답에 포함 된 것과 같은이 shankar's answer의 링크와 코드를 살펴했다.

기능은 웹보기로로드 문서에 jQuery를 주입이 sample gist에서 유래 :


I는 아래 함수에 웹뷰 jQuery를 이용하도록 사용한다.

이 함수는 jQuery를 삽입하기 위해 스크립트를 실행하기 전에 WebView에 문서를로드해야합니다. WebEngine의 document 속성에 리스너를 추가하고 문서가 설정된 후에 jQuery를 삽입하는 함수 만 트리거하여 문서가로드되었는지 확인할 수 있습니다.


jQuery 참조를 삽입하는 대신로드 된 html에 직접 포함시킬 수도 있습니다. 직접 포함 기법의 예는 JavaFX WebView 화면에 jQuery DatePicker을 표시하는이 예제입니다.

+0

안녕하세요 [@jewelsea] (http://stackoverflow.com/users/1155209/jewelsea). 나는 내 머리를 wracking했습니다 [이 질문 다시 게시 : JavaFx WebView에 JQuery를 추가하는 방법] (http://stackoverflow.com/questions/22947543/how-to-add-jquery-onto-javafx- webview). 그러나 특정 상황에 온라인으로 다른 리소스를 구현할 수 없었습니다. 좀 봐 주시겠습니까? 그리고 어떤 식 으로든 나를 도울 수 있는지보십시오. 거의 끝나면 내 프로젝트에서 매우 중요한 부분입니다. 당신이 할 수 있다면 크게 감사 할 것입니다. 고맙습니다. – ILikeProgramming

1

그냥 리소스에서 문자열로 스크립트를로드하고 실행하기 위해 WebEngine의 executeScript() 명령을 호출

WebView browser; 
StringBuilder jQueryContents = new StringBuilder; 
     // load this string with your jQuery file contents 

BufferedReader reader = new BufferedReader(new InputStreamReader(
     App.class.getResourceAsStream("/jquery.min.js"))); 

String line = reader.readLine(); 

while (line != null){ 
    jQueryContents.append(line); 
    line = reader.readLine(); 
} 

JSObject jQuery = null; 
try{ 
    jQuery = (JSObject) browser.getEngine().executeScript("$"); 
}catch (JSException jse){} 

if (jQuery == null){ // Don't load jQuery if there already is one, or you 
        // will destroy any $(document).ready() handlers that 
        // were declared previously 
    browser.getEngine().executeScript(jQueryContents.toString()); 
}  

그리고 당신의 엔진은로드 jQuery를. 응용 프로그램이 인터넷에있는 경우 이전 페이지에 이미로드 된 경우 다시로드 할 필요가 없으므로 Google에서 jQuery를로드하는 것이 훨씬 더 좋습니다. 앱이 인트라넷 또는 닫힌 샌드 박스 인 경우 해당 항목에 대해 걱정할 필요가 없습니다.

0

JavaScript를 사용할 수있는 경우 JavaFX는 JREery를 지원하지 않습니다. 테마 롤러 JRE로 인해 JQuery 모바일이 작동하지 않는 유일한 이유는 JREery가 CSS-UI 컨트롤러를 읽을 수 없기 때문입니다. JQuery는 여전히 JavaScript임을 기억하십시오.

내가 생각한 유일한 문제는 JQuery에 cdn이 필요하다는 것입니다. 따라서 HTML 문서에 JQuery를 포함 시키면 JQuery의 CDN을 포함시켜야합니다. 그러면 HTML 파일에 대한 링크와 함께 load 메소드를 사용할 수 있습니다.

관련 문제