你所要知道JS(DHTML)中的一些技巧
你所要知道JS(DHTML)中的一些技巧
发布时间:2016-12-30 来源:查字典编辑
摘要:这些天都没有更新日志了,这篇文章就也算是自己的一些经验谈了。简单的说一些技巧给大家,希望对你有所帮助,如果还有疑问,可以在下边留言。一、全等...

这些天都没有更新日志了,这篇文章就也算是自己的一些经验谈了。简单的说一些技巧给大家,希望对你有所帮助,如果还有疑问,可以在下边留言。

一、全等运算符

在JS中,不为0的数皆为true,除了几个特殊的变量除外。比如:undefined,null,""等。这在大多数情况下,也是我们所期望的。

但你不应该忽略这个全等运算符。因此需要较为严格的效验下,我们可以用===这个全等运算符,看下面的代码:

//平常的一些效验

varfoo=function(arg){

if(!arg){

alert("normalfalse");

}else{alert("true");}

}

foo(null);//false

foo(false);//false

foo("");//false

foo("never-online");//true

//全等效验

varfoo=function(arg){

if(arg===false){

alert("false");

}else{alert("notafalsevariable")}

}

foo(null);//notafalsevariable

foo(false);//false

foo("");//notafalsevariable

foo("never-online");//notafalsevariable

二、变量的应用之一——去除网页嵌套

例如,你要把baidu.com嵌入你自己的一个iframe里,得到的结果却不是你想要的,因为它有这么一句代码

if(self!=top){top.location=self.location;}

这句代码的意思是:如果网页有嵌套的话(也就是用了frame技术的话,将去除嵌套,并把该frame里的url给到顶层窗口)

这是个令人头痛的问题,比如,在一些免费空间中也使用了上面的这句代码。如果去除呢?用这一句代码就可去除嵌套:

<script>

varlocation='never-online';

</script>

下面来说明用了这句代码为什么可以去除嵌套:

我们知道,JS变量中,假如变量是这样

<scripttype="text/javascript">

//<![CDATA[

myVar="never-online";

(function(){

//varmyVar;

alert(myVar)

})()

//]]>

</script>

是可以显示"never-online"这个字符串的。而当你把//varmyVar这句还原时(也就是不注释掉它时)结果就不一样了,将显示undefined。我们用varlocation="never-online"时也是一样的道理,以下的代码也许将会为你解疑。

<scripttype="text/javascript">

//<![CDATA[

alert(location);

//varlocation;

//]]>

</script>

同样,第二次运行时,把varlocation这句还原,比较一下就应该明白原因了。同理,window,document都是如此。有兴趣你就可以试试。

三、得到当前页的路径

要达到这个目的,方法有很多种,比如利用location对象,但我这里举的例是用创建的一个IMG标签。看代码:

<scripttype="text/javascript">

//<![CDATA[

varp=document.createElement("IMG");

p.src=".";alert(p.src);

//]]>

</script>

我们所知道的,"."在路径中表示的是当前文件夹。因此,用IMG来取得路径在某些情况下,可以较快的得到路径。

四、用!!运算符得到一个变量的boolean值,在某种程度上说,就是相当于强制转型

比如

<scripttype="text/javascript">

//<![CDATA[

varisSupportedXMLHttp=!!newActiveXObject("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,IE4.x之类)的时候看到这行文字<br>");

/*@end

@*/

六、其它的,现在一下想不到那么多,暂时先写到这吧

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类