使用 WebKit 存取 DOM element 以及 JavaScript

42 views
Skip to first unread message

lukhnos

unread,
Oct 11, 2006, 12:37:08 AM10/11/06
to hsinchu.js
在 OS X 上使用 WebKit
的應用程式越來越多,許多程式(例如 Adium,
Colloquy)的主要介面甚至都是用 HTML + JavaScript 做的。

在 ObjectiveFlickr 的 PhotoSearch
範例中,就有兩個簡單使用 WebKit 的例子,一個是使用
WebKit 存取某個 web view 當中的 DOM element:

DOMHTMLElement *e = (DOMHTMLElement*)[[[webView mainFrame]
DOMDocument] getElementById:@"photos"];

拿到這個 DOMHTMLElement 後,就可以取得和修改 innerHTML
了:

[e setInnerHTML:code];

另一個例子則是呼叫 Javascript
,這裡用的是簡單的做法:

[webView stringByEvaluatingJavaScriptFromString:@"new
Effect.BlindDown('photos')"];

回傳值是一個字串。事實上 WebKit 還有更細緻的呼叫
JavaScript 的方法,不但能從 Objective-C 呼叫 JavaScript
函數,也能直接取得 JavaScript 物件(會自動轉換為
Cocoa 中的 NSString, NSNumber 或 NSArray
等物件)。同樣的,在 WebKit 裡執行的 JavaScript
,也可以取得 Objective-C 物件(只要你願意 export
出來),甚至可以呼叫 Objective-C 的 method。

Reply all
Reply to author
Forward
0 new messages