onTouchイベントでCrossWalkView(WebView)で開いたhtmlページの要素のXPATHを調べる方法は?htmlページ(WebView)からxPathを取得する方法
0
A
答えて
0
WebViewコンポーネントをWebViewコンポーネントに設定します。
browser = (WebView) findViewById(R.id.browser);
browser.setWebViewClient(new InnerWebViewClient());
そしてWebViewClientクラス
private class InnerWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
}
を拡張ここでは、文字列形式のようにURLを取得します。 WebivewのonTouchイベントは、最初のonPageStarted()メソッドを実行します。だからそこにあなたのパスのURLを取得します。
0
InputStream is = getResources().openRawResource(R.raw.get_xpath);
Scanner s = new Scanner(is).useDelimiter("\\A");
String javascript = s.hasNext() ? s.next() : "";
myWebView.evaluateJavascript(javascript, null);
と私のJSコードhere`s:
document.onclick= function(event) {
if (event===undefined) event= window.event; // IE hack
var target= 'target' in event? event.target : event.srcElement; // another IE hack
var root= document.compatMode==='CSS1Compat'? document.documentElement : document.body;
var mxy= [event.clientX+root.scrollLeft, event.clientY+root.scrollTop];
var path= getPathTo(target);
var txy= getPageXY(target);
alert('Clicked element '+path+' offset '+(mxy[0]-txy[0])+', '+(mxy[1]-txy[1]));
}
function getPathTo(element) {
if (element.id!=='')
return 'id("'+element.id+'")';
if (element===document.body)
return element.tagName;
var ix= 0;
var siblings= element.parentNode.childNodes;
for (var i= 0; i<siblings.length; i++) {
var sibling= siblings[i];
if (sibling===element)
return getPathTo(element.parentNode)+'/'+element.tagName+'['+(ix+1)+']';
if (sibling.nodeType===1 && sibling.tagName===element.tagName)
ix++;
}
}
function getPageXY(element) {
var x= 0, y= 0;
while (element) {
x+= element.offsetLeft;
y+= element.offsetTop;
element= element.offsetParent;
}
return [x, y];
}
を私がここに来た JSソリューション
関連する問題
- 1. WebViewからHTMLソースコードを取得する
- 2. Android WebView:ウェブサイトからHTML divを取得
- 3. アジャイルツールキットの仮想ページからHTMLを取得する方法
- 4. ラベルテキスト値フォームをHTMLページから取得する方法は?
- 5. webviewのHTMLページにアンドロイドから値を送る方法
- 6. JSON形式のデータをWebViewからHTMLページに渡す方法
- 7. アクティブディレクトリを取得するhtmlページから
- 8. HTMLページからリンクを取得する
- 9. Xpath htmlタグでテキストを取得する方法
- 10. レスポンスネイティブのWebViewオブジェクトのhtmlソースを取得する方法
- 11. C#WindowsアプリケーションHTMLソースコードフォームを取得する方法WebView
- 12. Webviewのキーボードから完了ボタンアクションを取得する方法
- 13. javaFXのwebViewからgetSelectedTextを取得する方法
- 14. webViewからビットマップ(UWP C#)にdragoverイメージを取得する方法
- 15. 反応ネイティブWebviewから選択オブジェクトを取得する方法
- 16. サーブレットからHtmlページへのパラメータの取得方法は?
- 17. 他のページで外部ページのHTMLを取得する方法
- 18. Scala Webページからhtmlコンテンツを取得
- 19. SOAPメッセージからXpathを取得する
- 20. HTMLページから.aspxページに変数を取得する
- 21. facebookからページIDを取得する方法ページ名
- 22. AJAXで別のページからdivのhtmlを取得する方法は?
- 23. NodeJS:Webページ上にHTML値(JSONファイルから取得)を追加する方法は?
- 24. HTMLページからデータを取得してSQL Severに格納する方法
- 25. javaのhttpsアドレスからhtmlページのソースを取得する方法
- 26. HTMLページから注入されたajaxコンテンツを取得する方法は?
- 27. YQLとXPathを使用してHTMLからデータを取得
- 28. webviewでクリックされたwebviewのコンテンツを取得する方法
- 29. ドロップダウンボックスから空白の値を選択するXPATHを取得する方法
- 30. HtmlUnitを使用してHTMLページを取得する方法