20151210小问题2
1、各瀏覽器下 scrollTop的差異
IE6/7/8:
對(duì)于沒有doctype聲明的頁(yè)面里可以使用? document.body.scrollTop 來(lái)獲取 scrollTop高度 ;
對(duì)于有doctype聲明的頁(yè)面則可以使用 document.documentElement.scrollTop;
Safari:
safari 比較特別,有自己獲取scrollTop的函數(shù) : window.pageYOffset ;
Firefox:
火狐等等相對(duì)標(biāo)準(zhǔn)些的瀏覽器就省心多了,直接用 document.documentElement.scrollTop ;
2、獲取scrollTop值
完美的獲取scrollTop 賦值短語(yǔ) :
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
DTD相關(guān)說(shuō)明:
頁(yè)面具有 DTD,或者說(shuō)指定了 DOCTYPE 時(shí),使用 document.documentElement。
頁(yè)面不具有 DTD,或者說(shuō)沒有指定了 DOCTYPE,時(shí),使用 document.body。
在 IE 和 Firefox 中均是如此。
為了兼容,不管有沒有 DTD,可以使用如下代碼:
var scrollTop = window.pageYOffset //用于FF|| document.documentElement.scrollTop || document.body.scrollTop || 0;documentElement 和 body 相關(guān)說(shuō)明:
body是DOM對(duì)象里的body子節(jié)點(diǎn),即 <body> 標(biāo)簽;
documentElement 是整個(gè)節(jié)點(diǎn)樹的根節(jié)點(diǎn)root,即<html> 標(biāo)簽;
DOM把層次中的每一個(gè)對(duì)象都稱之為節(jié)點(diǎn),就是一個(gè)層次結(jié)構(gòu),你可以理解為一個(gè)樹形結(jié)構(gòu),就像我們的目錄一樣,一個(gè)根目錄,根目錄下有子目錄,子目錄下還有子目錄。
以HTML超文本標(biāo)記語(yǔ)言為例:整個(gè)文檔的一個(gè)根就是,在DOM中可以使用document.documentElement來(lái)訪問它,它就是整個(gè)節(jié)點(diǎn)樹的根節(jié)點(diǎn)。而body是子節(jié)點(diǎn),要訪問到body標(biāo)簽,在腳本中應(yīng)該寫:document.body。
?
3.javascript:void(0)
<a href="javascript:doTest2();void(0);">here</a>
Javascript中void是一個(gè)操作符,該操作符指定要計(jì)算一個(gè)表達(dá)式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expression 是一個(gè)要計(jì)算的 Javascript 標(biāo)準(zhǔn)的表達(dá)式。表達(dá)式外側(cè)的圓括號(hào)是選的,但是寫上去是一個(gè)好習(xí)慣。 (實(shí)現(xiàn)版本?? Navigator 3.0?? )
你以使用 void 操作符指定超級(jí)鏈接。表達(dá)式會(huì)被計(jì)算但是不會(huì)當(dāng)前文檔處裝入任何內(nèi)容。
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,當(dāng)用戶以后不會(huì)發(fā)生任何事。當(dāng)用戶鏈接時(shí),void(0) 計(jì)算為 0,但 Javascript 上沒有任何效果。
<A HREF="javascript:void(0)">單此處什么也不會(huì)發(fā)生</A>
下面的代碼創(chuàng)建了一個(gè)超級(jí)鏈接,用戶單時(shí)會(huì)提交表單。
<A HREF="javascript:void(document.form.submit())">單此處提交表單</A>
4.a href=#與 a href=javascript:void(0) 的區(qū)別
#包含了一個(gè)位置信息
默認(rèn)的錨是#top 也就是網(wǎng)頁(yè)的上端
而javascript:void(0)?? 僅僅表示一個(gè)死鏈接
這就是為什么有的時(shí)候頁(yè)面很長(zhǎng)瀏覽鏈接明明是#是
跳動(dòng)到了頁(yè)首
而javascript:void(0) 則不是如此
所以調(diào)用腳本的時(shí)候最好用void(0)
或者<input onclick>
<div onclick>等
轉(zhuǎn)載于:https://www.cnblogs.com/sunshinegirl-7/p/5037789.html
總結(jié)
以上是生活随笔為你收集整理的20151210小问题2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中的局部类型
- 下一篇: Quartz2D指定显示范围