2011-11-10 2 views
1

UIWebViewから座標(「座標x、yとは何ですか?」)に基づいてクリック可能な要素を取得しようとしていますそれはリンクですか、どこに行くのですか?))、プログラムでクリックすると、いくつかの問題が発生しました。UIWebViewの位置に基づいてjavascriptを使用してプログラムで要素を取得し、それらをクリックする

のelementFromPoint(x、y)は、所与の位置で要素を取得する点で素晴らしい働き、私が持っている場合、例えば、<a>内部<span>は、次にスパンではなく<a>で報告されています。これを回避する方法はありますか?または、この要素の上にある親に移動しますが、同じ座標で、クリックできない場合は移動しますか?

また、クリック()はボタンには効果がありますが、リンクには効果がありません。リンク上のマウスクリック(またはタップ)やマウスオーバーをシミュレートするにはどうすればよいですか?私はonmouseover()を要素に対して試しましたが、うまくいきませんでした。

また、プログラム上で移動することができ、私が望むことをすることができるページ上にマウスオブジェクトがありますか?

答えて

2

私が "mouseover"の部分でやったのは、指定された要素がアンカーかフォームオブジェクトかどうかをチェックすることでした。そうでなければ、parentNodeに行きチェックしました。 2人の親を諦めて諦める。リンク自体を取得するだけで十分です。

要素をクリックすると、階層をたどる必要がないので、さらに簡単です。マウスのクリックイベントを作成し、elementFromPoint()で検出された要素に渡すだけで、ページは自動的にこれを階層自体に転送します。

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"var theEvent = document.createEvent('MouseEvent');\n theEvent.initMouseEvent('click', true, true, window);\n awElement.dispatchEvent(theEvent);\n awElement.click();\n", mouseX, mouseY]]; 

だから簡単!ちょうど私が同じことをして要素のリンクを得ることができたらいいと思う。

0

私の理解が正しい場合。

"document.location"を試してみて、必要な値の文字列uを設定してください。

UIWebViewDelegate機能 - shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {が呼び出され、URLが要求されます。

+0

これは私がやろうとしていることではありません。私が場所について話しているとき、私は指定されたページの座標を意味します。 document.locationは、ドキュメント上の場所ではなく、現在のドキュメントを参照します。少なくとも私が知る限り。 –

関連する問題