2017-09-27 14 views
0

webkit2gtk에서 텍스트를 선택하는 데 사용할 수있는 방법은 무엇입니까? Vala webkit2에 대한 API에서 아무것도 찾을 수 없습니다.webkit2gtk에서 선택한 텍스트를 얻는 방법

텍스트 선택 후 사용자가 마우스를 놓은 후에 웹 페이지에서 선택한 텍스트를 가져 오는 것이 요구 사항입니다.

답변

1

현재 선택을 가져 오는 유일한 API는 DOM selection API입니다. DOM 표현은 WebKit.WebView 위젯이있는 응용 프로그램 프로세스와는 별도로 웹 프로세스의 메모리에 있으므로 WebKitGTK +에서 DOM에 액세스하는 것은 약간 어색합니다.

둘 사이에 다리를하려면 같은, WebKit.WebView.run_javascript()을 전화를 통해 웹 프로세스에서 실행되는 해당 자바 스크립트 코드를 전달할 수 있습니다

web_view.run_javascript("window.getSelection().getRangeAt(0).toString()") 

이 방법을 사용하려면 발라을 사용해야합니다 0.38을 사용하거나 JavaScriptCore VAPI를 자신의 프로젝트 (Geary처럼)로 가져 오면 반환 값이 무엇인지 알아낼 수 있습니다.

DOM 선택 개체에 적어도 하나의 범위가 있다는 식으로 몇 가지 검사를 추가하는 것이 좋습니다.

+1

많은 감사의 뜻으로, 저는 이미 WebKit.WebView.run_javascript()를 대체로 사용하기 시작했으며 여기에 설명 된 javascript 함수를 사용했습니다 [https://stackoverflow.com/questions/5379120/get-the-highlighted-selected-text ]를 눌러 선택 텍스트를 가져옵니다. 그런 다음이 함수의 값을 사용하여 WebView.get_title() 메서드를 사용하여 가져올 수있는 문서 제목을 설정합니다. DOM 접근을 위해 좀더 고유 한 gtk 컨트롤을 쉽게 사용할 수 없다는 사실을 명심하십시오. 대답을 대답으로 받아들입니다. –

+0

아, 예전 세트 제목에 대해 잊어 버렸거나 타이틀 트릭을 얻었습니다. 이전의 vala 릴리스에서 JavaScriptCore가 누락 된 것은 가장 쉬운 해결 방법입니다. –