国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

你所要知道JS(DHTML)中的一些技巧

2024-05-06 16:54:41
字體:
來源:轉載
供稿:網友
這些天都沒有更新日志了,這篇文章就也算是自己的一些經驗談了。簡單的說一些技巧給大家,希望對你有所幫助,如果還有疑問,可以在下邊留言。

一、全等運算符
在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
@*/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灌云县| 垫江县| 新密市| 马关县| 怀宁县| 淳安县| 丰都县| 巴彦县| 辛集市| 大竹县| 阳新县| 翁牛特旗| 左权县| 淳安县| 长兴县| 新巴尔虎左旗| 孟连| 茶陵县| 临清市| 蓬溪县| 葵青区| 教育| 信阳市| 阿瓦提县| 天峨县| 五莲县| 浙江省| 开阳县| 利川市| 陇川县| 集安市| 寿宁县| 依安县| 资中县| 蓬安县| 通城县| 沅陵县| 长兴县| 潮安县| 蓬溪县| 柳林县|