DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 你所要知道JS(DHTML)中的一些技巧
你所要知道JS(DHTML)中的一些技巧
編輯:JavaScript基礎知識     
這些天都沒有更新日志了,這篇文章就也算是自己的一些經驗談了。簡單的說一些技巧給大家,希望對你有所幫助,如果還有疑問,可以在下邊留言。

一、全等運算符 
在JS中,不為0的數皆為true,除了幾個特殊的變量除外。比如:undefined,null,""等。這在大多數情況下,也是我們所期望的。
但你不應該忽略這個全等運算符。因此需要較為嚴格的效驗下,我們可以用===這個全等運算符,看下面的代碼:
//平常的一些效驗
var foo = function(arg) {
  if (!arg) {
    alert("normal false");
  } else { alert("true"); }
}
foo(null); //false
foo(false); //false
foo(""); //false
foo("never-online"); //true
//全等效驗
var foo = function(arg) {
  if (arg===false) {
    alert("false");
  } else { alert("not a false variable") }
}
foo(null); //not a false variable
foo(false); //false
foo(""); //not a false variable
foo("never-online"); //not a false variable

二、變量的應用之一——去除網頁嵌套
例如,你要把baidu.com嵌入你自己的一個iframe裡,得到的結果卻不是你想要的,因為它有這麼一句代碼
if(self!=top){top.location=self.location;}
這句代碼的意思是:如果網頁有嵌套的話(也就是用了frame技術的話,將去除嵌套,並把該frame裡的url給到頂層窗口)
這是個令人頭痛的問題,比如,在一些免費空間中也使用了上面的這句代碼。如果去除呢?用這一句代碼就可去除嵌套:
<script>
var location='never-online';
</script>
下面來說明用了這句代碼為什麼可以去除嵌套:
我們知道,JS變量中,假如變量是這樣
 <script type="text/javascript">
 //<![CDATA[
    myVar = "never-online";
    (function () {
      //var myVar;
      alert(myVar)
    })()
 //]]>
 </script>
是可以顯示"never-online"這個字符串的。而當你把//var myVar這句還原時(也就是不注釋掉它時)結果就不一樣了,將顯示undefined。我們用var location="never-online"時也是一樣的道理,以下的代碼也許將會為你解疑。
 <script type="text/javascript">
 //<![CDATA[
    alert(location);
    //var location;
 //]]>
 </script>
同樣,第二次運行時,把var location這句還原,比較一下就應該明白原因了。同理,window,document都是如此。有興趣你就可以試試。

三、得到當前頁的路徑
要達到這個目的,方法有很多種,比如利用location對象,但我這裡舉的例是用創建的一個IMG標簽。看代碼:
 <script type="text/javascript">
 //<![CDATA[
    var p = document.createElement("IMG");
    p.src="."; alert(p.src);
 //]]>
 </script>
我們所知道的,"."在路徑中表示的是當前文件夾。因此,用IMG來取得路徑在某些情況下,可以較快的得到路徑。

四、用!!運算符得到一個變量的boolean值,在某種程度上說,就是相當於強制轉型
比如
 <script type="text/javascript">
 //<![CDATA[
    var isSupportedXMLHttp = !!new ActiveXObject("MSXML2.XMLHTTP");
    alert(isSupportedXMLHttp)
 //]]>
 </script>
為什麼會這樣,我們可以從技巧一中可以得知答案。這裡不再重復。

五、條件編譯。
如果你覺得有必要的話,可以使用此方法。這和一些強語言裡的條件編譯類似。很多情況下用於——兼容。
這裡只是簡單的提一下,如果你有興趣,可以參看MSDN,或者看一些JS條件編譯的文章。
只需要幾個語法:
@cc_on - 這句在條件編譯中是必寫的,表示激活條件編譯
@set @varname = term - 這句是賦值的
下面這裡就是判斷的了
@if
@else
@end
簡單的例子:
/*@cc_on
document.write("JScript 版本: " + @_jscript_version + ".<br>");
 /*@if (@_jscript_version >= 5)
 document.write("JScript 版本 5.0+.<br \/>");
 document.write("只有當浏覽器支持JScript5+的時候你才能看到這些文字.<br>");
 @else @*/
 document.write("當你使用其他浏覽器(比如: Firefox, IE 4.x 之類)的時候看到這行文字<br>");
 /*@end
@*/

六、其它的,現在一下想不到那麼多,暫時先寫到這吧 
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved