作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 03:50:29 阅读 我要评论

这些天都没有更新日志了,这篇文章就也算是自己的一些经验谈了。简单的说一些技巧给大家,希望对你有所帮助,如果还有疑问,可以在下边留言。 一、全等运算符 在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 @*/ 六、其它的,现在一下想不到那么多,暂时先写到这吧

  推荐阅读

  如何用javascript判断录入的日期是否合法

复制代码 代码如下:function IsValidYear(psYear) { var sYear = new String(psYear); if(psYear==null) { return false; } if(isNaN(psYear)==true) { return false; >>>详细阅读


本文标题:你所要知道JS(DHTML)中的一些技巧

地址:http://www.17bianji.com/kaifa2/JS/31143.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)