iOS 與JS Html常見互動
獲取所有html:NSString *lJs = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
獲取body:
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
[webView stringByEvaluatingJavaScriptFromString:@"document.images[0].src="http://www.baidu.com/W020110907540066716627.jpg";document.images[1].src="http://www.baidu.com/W020120807265226549111.jpg""];
[webView stringByEvaluatingJavaScriptFromString:[NSStringstringWithFormat:@"document.images[%d].src="%@"", i, imageName]];
document 文擋物件 - JavaScript指令碼語言描述
———————————————————————
注:頁面上元素name屬性和JavaScript引用的名稱必須一致包括大小寫
否則會提示你一個錯誤資訊 “引用的元素為空或者不是物件\\\\\”
———————————————————————
物件屬性
document.title //設定文件標題等價於HTML的title標籤
document.bgColor //設定頁面背景色
document.fgColor //設定前景色(文字顏色)
document.linkColor //未點選過的連結顏色
document.alinkColor //啟用連結(焦點在此連結上)的顏色
document.vlinkColor //已點選過的連結顏色
document.URL //設定URL屬性從而在同一視窗開啟另一網頁
document.fileCreatedDate //檔案建立日期,只讀屬性
document.fileModifiedDate //檔案修改日期,只讀屬性
document.fileSize //檔案大小,只讀屬性
document.cookie //設定和讀出cookie
document.charset //設定字符集 簡體中文:gb2312
———————————————————————
常用物件方法
document.write() //動態向頁面寫入內容
document_createElement_x_x_x_x_x_x(Tag) //建立一個html標籤物件
document.getElementByIdx_x_x_x_x_x_x(ID) //獲得指定ID值的物件
document.getElementsByName(Name) //獲得指定Name值的物件
document.body.a(oTag)
———————————————————————
body-主體子物件
document.body //指定文件主體的開始和結束等價於body>/body>
document.body.bgColor //設定或獲取物件後面的背景顏色
document.body.link //未點選過的連結顏色
document.body.alink //啟用連結(焦點在此連結上)的顏色
document.body.vlink //已點選過的連結顏色
document.body.text //文字色
document.body.innerText //設定body>…/body>之間的文字
document.body.innerHTML //設定body>…/body>之間的HTML程式碼
document.body.topMargin //頁面上邊距
document.body.leftMargin //頁面左邊距
document.body.rightMargin //頁面右邊距
document.body.bottomMargin //頁面下邊距
document.body.background //背景圖片
document.body.a(oTag) //動態生成一個HTML物件
常用物件事件
document.body.onclick=”func()” //滑鼠指標單擊物件是觸發
document.body.onmouseover=”func()” //滑鼠指標移到物件時觸發
document.body.onmouseout=”func()” //滑鼠指標移出物件時觸發
———————————————————————
location-位置子物件
document.location.hash // #號後的部分
document.location.host // 域名+埠號
document.location.hostname // 域名
document.location.href // 完整URL
document.location.pathname // 目錄部分
document.location.port // 埠號
document.location.protocol // 網路協議(http:)
document.location.search // ?號後的部分
documeny.location.reload() //重新整理網頁
document.location.reload(URL) //開啟新的網頁
document.location.assign(URL) //開啟新的網頁
document.location.replace(URL) //開啟新的網頁
———————————————————————
selection-選區子物件
document.selection
———————————————————————
images集合(頁面中的圖象)
a)通過集合引用
document.images //對應頁面上的img標籤
document.images.length //對應頁面上img標籤的個數
document.images[0] //第1個img標籤
document.images[i] //第i-1個img標籤
b)通過nane屬性直接引用
img name=”oImage”
document.images.oImage //document.images.name屬性
c)引用圖片的src屬性
document.images.oImage.src //document.images.name屬性.src
d)建立一個圖象
var oImage
oImage = new Image()
document.images.oImage.src=”1.jpg”
同時在頁面上建立一個img /標籤與之對應就可以顯示
———————————————————————-
forms集合(頁面中的表單)
a)通過集合引用
document.forms //對應頁面上的form標籤
document.forms.length //對應頁面上/formform標籤的個數
document.forms[0] //第1個/formform標籤
document.forms[i] //第i-1個/formform標籤
document.forms[i].length //第i-1個/formform中的控制元件數
document.forms[i].elements[j] //第i-1個/formform中第j-1個控制元件
b)通過標籤name屬性直接引用
/formform name=”Myform”>input name=”myctrl”/>/form
document.Myform.myctrl //document.表單名.控制元件名
c)訪問表單的屬性
document.forms[i].name //對應form name>屬性
document.forms[i].action //對應/formform action>屬性
document.forms[i].encoding //對應/formform enctype>屬性
document.forms[i].target //對應/formform target>屬性
document.forms[i].a(oTag) //動態插入一個控制元件
document.all.oDiv //引用圖層oDiv
document.all.oDiv.style.display=” //圖層設定為可視
document.all.oDiv.style.display=”none” //圖層設定為隱藏
document.getElementId(”oDiv”) //通過getElementId引用物件
document.getElementId(”oDiv”).style=”
document.getElementId(”oDiv”).display=”none”
圖層物件的4個屬性
document.getElementByIdx_x_x_x_x_x_x(”ID”).innerText //動態輸出文字
document.getElementByIdx_x_x_x_x_x_x(”ID”).innerHTML //動態輸出HTML
document.getElementByIdx_x_x_x_x_x_x(”ID”).outerText //同innerText
document.getElementByIdx_x_x_x_x_x_x(”ID”).outerHTML //同innerHTML
document.getElementsByName 和 document.getElementsByTagName
當頁面上的控制元件同名且多個的時候,從程式的嚴密角度出發,需要判斷長度,而且有長度和沒長度是兩種引用方法.
oEle= document.all.aaa ;//這裡有一個aaa的物件,但我們不知道它現在長度是多少,所以沒辦法對它操作.因此,我們要先做判斷長度的過程.如下:
if(oEle.length){}else{};
在兩種情況下,花括號裡面的內容寫法也是不一樣的:
if(oEle.length){
for(var i = 0 ;i<oEle.length;i++){
oEle[i].value..
}
}
else{
oEle.value..
};
但是這樣寫是不是太複雜了點?而且當花括號裡面的程式碼比較多的時候,我們要寫兩遍程式碼,暈了先~
還好有
document.getElementsByName()
這個方法.它對一個和多個的處理是一樣的,我們可以用:
oEle = document.getElementsByName('aaa')
來引用
當oEle只有1個的時候,那麼就是oEle[0],有多個的時候,用下標法oEle[i]迴圈獲取,是不是很簡單?
值得一提的是它對Name和ID的同樣有效的. (它只能應用到document物件)
<div id=radiodiv language=javascript >
<INPUT name=radio1 value=1 type="radio">
<INPUT name=radio1 value=0 type="radio" CHECKED>
</div>
document.getElementsByName("radio1").item(0).value 結果是 1
但是.相對應的,還有另一個方法,可以應用的物件會更廣一點:
getElementsByTagName
<div id=radiodiv language=javascript >
<INPUT name=radio1 value=1 type="radio" id=myRadio1>
<INPUT name=radio1 value=0 type="radio" id=myRadio2 CHECKED >
</div>
radiodiv.getElementsByTagName_r("input").item(0).value 結果是 1
,比如我知道了一個<DIV ID='aaa'><input name=input1 value=1 type=radio ><input name=input1 value=2 type=radio>......</DIV>我要取DIV裡面的所有input,這樣寫就可以了:
aaa.getElementsByTagName_r('INPUT')
這樣就有效的可以和別的DIV(比如說有個叫bbb的DIV,裡面的也是一樣的input)相區別.
同getElementsByTagName相對應,
還有一個document.body.all.tags()
能用這個方法的物件比getElementsByTagName要小得多.但比getElementsByName要多.
到這裡我們還要提一下getElementById
它也是隻有document物件才能使用,而且返回的是陣列的第一個元素,呵呵,它的方法名都寫明瞭是getElement而不是getElements
<div id=radiodiv language=javascript >
<INPUT name=radio1 value=1 type="radio" id=myRadio1 >
<INPUT name=radio1 value=0 type="radio" id=myRadio2 value="myVal2" CHECKED >
</div>
document.getElementByIdx_x_x_x_x("myRadio2").value 結果是 myVal2
相關文章
- iOS 與 JS 互動手冊 - JavaScriptCoreiOSJSJavaScript
- iOS與JS互動之UIWebView-JavaScriptCore框架iOSJSUIWebViewJavaScript框架
- iOS與JS互動之UIWebView協議攔截iOSJSUIWebView協議
- iOS 與 JS 互動開發知識總結iOSJS
- iOS開發:網頁JS與OC互動(JavaScriptCore)iOS網頁JSJavaScript
- js 與WKWebView 互動JSWebView
- WKWebView與JS互動WebViewJS
- WKWebViewJavascriptBridge - 優雅的 iOS 與 JS 互動層框架(Swift)WebViewJavaScriptiOSJS框架Swift
- iosUIWebView與js的簡單互動swift3版iOSUIWebViewJSSwift
- HTML5接入與OC互動HTML
- webview與JS的互動WebViewJS
- ReactNative與iOS的互動ReactiOS
- iOS與H5互動iOSH5
- HTML常見問題HTML
- 13 Android與HTML5互動AndroidHTML
- oc 與 js互動之vue.jsVue.js
- oc 與js 的原生互動JS
- 利用 Native.js 實現 Android 與 HTML 資料的互動JSAndroidHTML
- Servlet實現、與html的簡單互動ServletHTML
- Silverlight與HTML雙向互動HTML
- 【unity2022與html互動】UnityHTML
- Android webview 與 js(Vue) 互動AndroidWebViewJSVue
- angularjs與伺服器互動AngularJS伺服器
- RN互動iOSiOS
- iOS常見檔案及程式的啟動原理iOS
- 前端常見問題(二)- html前端HTML
- HTML常見標籤詳解HTML
- HTML常見小問題1HTML
- HTML常見小問題2HTML
- HTML表單與PHP進行資料互動HTMLPHP
- Flutter使用JsBridge與WebView互動FlutterJSWebView
- Flutter WebView與JS互動簡易指南FlutterWebViewJS
- WKWebView和WebView與JS的互動方式WebViewJS
- JS 與 OC 互動的三種方法JS
- JS - 常見題目JS
- js常見問題JS
- 利用HTML5,無JS實現各種互動效果HTMLJS
- ReactNative iOS 互動ReactiOS