天天看點

ios webview與JS的互動

最近寫了一個與JS互動的程式,了解了下HTML ,HTML DOM,JS相關的知識

1.什麼是 DOM?

通過 JavaScript,您可以重構整個 HTML 文檔。您可以添加、移除、改變或重排頁面上的項目。

要改變頁面的某個東西,JavaScript 就需要獲得對 HTML 文檔中所有元素進行通路的入口。這個入口,連同對 HTML 元素進行添加、移動、改變或移除的方法和屬性,都是通過文檔對象模型來獲得的(DOM)。

在 1998 年,W3C 釋出了第一級的 DOM 規範。這個規範允許通路和操作 HTML 頁面中的每一個單獨的元素。

所有的浏覽器都執行了這個标準,是以,DOM 的相容性問題也幾乎難覓蹤影了。

DOM 可被 JavaScript 用來讀取、改變 HTML、XHTML 以及 XML 文檔。

DOM 被分為不同的部分(核心、XML及HTML)和級别(DOM Level 1/2/3):

Core DOM
定義了一套标準的針對任何結構化文檔的對象
XML DOM
定義了一套标準的針對 XML 文檔的對象

HTML DOM

定義了一套标準的針對 HTML 文檔的對象。

2.通過DOM,通路HTML文檔中的節點

getElementById() 和 getElementsByTagName()

getElementById() 和 getElementsByTagName() 這兩種方法,可查找整個 HTML 文檔中的任何 HTML 元素。

3.IOS中webview與JS互動的代碼

[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
         "script.type = 'text/javascript';"
         "script.text = \"function myFunction() { "
         "var field = document.getElementsByName('word')[0];"
         "field.value='測試';"
         "document.forms[0].submit();"
         "}\";"
         "document.getElementsByTagName('head')[0].appendChild(script);"];
        [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"]; 
           

上面的代碼是把JS代碼寫入到html網頁中,然後執行函數,實作JS中的功能。

通過  stringByEvaluatingJavaScriptFromString 函數,可以實作webview強大的互動功能

4.整合了HTML、HTML DOM、JS、IOS 這四塊的知識,JS需要重點加強

5.資料來源:

5.1 HTML知識: http://www.w3school.com.cn/h.asp

5.2 HTML DOM 知識:http://www.w3school.com.cn/htmldom/index.asp

繼續閱讀