2010-05-04 76 views
2

如何確定哪個詞在用戶點擊UIWebView時的位置?關於使用UIWebView,DOM和Javascript的HTML文檔點的問題

我能夠檢測水龍頭的CGPoint(子類UIWindow,比如this),並且我實際上可以獲取該點上的DOM元素using javascript

但我對javascript和DOM知之甚少,不知道如何才能真正得到用戶點擊哪個單詞。

這可能嗎?這就是我現在所擁有的:

int scrollPosition = [[webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"] intValue]; 
NSString *js = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).tagName", point.x, point.y+scrollPosition]; 
NSString *value = [webView stringByEvaluatingJavaScriptFromString:js]; 

NSLog(@"element: %@", value); 
+1

http://bees4honey.com/blog/tutorial/how-to-save-an-image-from-uiwebview/是javascript鏈接的DOM元素的副本,現在已被破壞。 – Mark 2011-05-23 23:58:22

+0

也使用UITapGestureRecognizer而不是第一個鏈接獲取X,Y – Mark 2011-05-24 02:37:16

回答

1

我不知道你將如何得到確切的詞,但是,我相信你可以得到的文本通過它的孩子迭代,並尋找與節點類型3元素的元素,其是文本。

+0

我最終將每個單詞包裝在標記上,並使用元素節點的textContent屬性獲取哪個單詞被點擊。 – leolobato 2010-05-04 22:42:03

0

有一種我現在找不到的方法,它可以讓你通過一些Javascript網橋將信息從UIWebView回傳到包含Cocoa的應用程序。所以我會將「點擊」處理程序附加到UIWebView中所有感興趣的元素上,並使用這個神奇橋樑向父容器發送一些消息。

這假設你控制了UIWebView的內容,並且可以注入所需的Javascript。如果這需要與任何網頁一起工作,那就更困難了。

+0

如果我需要爲每個需要點擊的單詞添加鏈接,我寧願將每個單詞放在單獨的標籤上。我認爲,按照我在這個問題上所做的方式來檢測點擊量會更輕,並且生成的HTML會更小。謝謝! – leolobato 2010-05-04 22:40:16