当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 你所要知道JS(DHTML)中的一些技巧

Javascript
站长推荐的用js实现的多浏览器支持的图片轮换展示效果ie,firefox
用js实现的十进制的颜色值转换成十六进制的代码
DHTML form validation
js资料toString 方法
js资料prototype 属性
js实现的网站首页随机公告随机公告
一个效果写的HashTable代码
用js实现的一个Flash滚动轮换显示图片代码生成器
关于javascript函数的几个话题
极致之美——百行代码实现全新智能语言
htm调用JS代码
斑马线效果代码
从新浪弄下来的全屏广告代码 与使用说明
用js实现预览待上传的本地图片
用javascript自动显示最后更新时间
表单提交时自动复制内容到剪贴板的js代码
用roll.js实现的图片自动滚动+鼠标触动的特效
一段js小代码,计算距春节还有多少天
js中设计一段程序,让它能够打印自己的方法收集藏
自动生成文章摘要的代码[JavaScript 版本]

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 227 ::
收藏到网摘: n/a

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