/********************
* 取窗口滚动条高度
******************/
function getScrollTop()
{
var scrollTop=0;
if(document.documentElement&&document.documentElement.scrollTop)
{
scrollTop=document.documentElement.scrollTop;
}
else if(document.body)
{
scrollTop=document.body.scrollTop;
}
return scrollTop;
}
/********************
* 取窗口可视范围的高度
*******************/
function getClientHeight()
{
var clientHeight=0;
if(document.body.clientHeight&&document.documentElement.clientHeight)
{
var clientHeight = (document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeig ......
1
、编写
js
函数
<script
type="text/javascript">
function display(id){
var
traget=document.getElementById(id);
if(traget.style.display=="none"){
traget.style.display="";
}else{
traget.style.display="none";
}
}
</script>
2.、
要显示
/
隐藏的
html
元素加上
id
属性
<table>
<tr id="menu"
>
<td>
控制这个
tr
的显示
/
隐藏
</td>
</tr>
</table>
......
1
、编写
js
函数
<script
type="text/javascript">
function display(id){
var
traget=document.getElementById(id);
if(traget.style.display=="none"){
traget.style.display="";
}else{
traget.style.display="none";
}
}
</script>
2.、
要显示
/
隐藏的
html
元素加上
id
属性
<table>
<tr id="menu"
>
<td>
控制这个
tr
的显示
/
隐藏
</td>
</tr>
</table>
......
Javascript函数中传递带空格的参数
通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用Javascript函数的方式:<a href=javascript:somefunction(args)>content</a>。注意,这么写是有问题的,问题就在于somefunction中的参数args的值不能含有空格,否则浏览器会认为空格后面的内容是<a>标签的某个属性,正确的写法应该是用引号将javascript:somefunction(args)引起来。另外还有一种方法可不必加这对引号,先将可能带空格的参数用escape函数处理一下,然后在somefunction中用unescape函数解码就行了。值得注意的是用encodeURI、decodeURI加解码却不能成功。
在网上找了下escape和unescape、encodeURI和decodeURI、encodeURIComponent和decodeURIComponent三对组合之间的区别:
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个: ......
在程序员杂志上看到一篇短文《前端开发工具概览》。觉得很有实用价值。现总结如下:
一、调试工具
1.firebug
2.Web Developer Toolbar--调整页面的各个细节
3.IE Developer Toolbar--调试IE的HTML和CSS
4.Companion.JS--调试IE的Javascript
5.Fiddler--Web调试代理,记录本机到互联网的所有HTTP(S)请求。
二、测试工具
1.YSlow--检测页面的性能
2.PageSpeed--检测页面的性能
3.JSLint--JavaScript预发检验工具
三、发布工具
1.Closure--JavaScript开发工具集
2.YUI Compressor--将源代码压缩后再发布到线上
3.Mircrosoft Ajax Minifier--将源代码压缩后再发布到线上
4.Closure Compiler--将源代码压缩后再发布到线上 ......
//转换为UNIX时间戳
function strtotimestamp(datestr)
{
var new_str = datestr.replace(/:/g,"-");
new_str = new_str.replace(/ /g,"-");
var arr = new_str.split("-");
var datum = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
return (datum.getTime()/1000); //为PHP所用
}
//UNIX时间戳转换为字符串
function timestamptostr(timestamp) {
d = new Date(timestamp.getTime());
var jstimestamp = (d.getFullYear())+"-"+(d.getMonth()+1)+"-"+(d.getDate())+" "+(d.getHours())+":"+(d.getMinutes())+":"+(d.getSeconds());
return jstimestamp;
}
javascript timestamp 和PHP 时间戳 差 8个小时
strtotimestamp("2010-01-01 08:00:00"); ......
//转换为UNIX时间戳
function strtotimestamp(datestr)
{
var new_str = datestr.replace(/:/g,"-");
new_str = new_str.replace(/ /g,"-");
var arr = new_str.split("-");
var datum = new Date(Date.UTC(arr[0],arr[1]-1,arr[2],arr[3]-8,arr[4],arr[5]));
return (datum.getTime()/1000); //为PHP所用
}
//UNIX时间戳转换为字符串
function timestamptostr(timestamp) {
d = new Date(timestamp.getTime());
var jstimestamp = (d.getFullYear())+"-"+(d.getMonth()+1)+"-"+(d.getDate())+" "+(d.getHours())+":"+(d.getMinutes())+":"+(d.getSeconds());
return jstimestamp;
}
javascript timestamp 和PHP 时间戳 差 8个小时
strtotimestamp("2010-01-01 08:00:00"); ......
javascript内存泄露的问题一直以来都不受到大家的重视,原因是对用户的影响没有太实际的表现,或许近几年内存发展迅速。脚本内存再泄露也不会有太大影响。
当然作为前端开发的同学们,就不能有这样的侥幸心理。出现memory leaks很大程度上是因为程序的不成熟和编码不太规范造成的。不过,这里就不说如何出现问题的,对问题的出现有兴趣可以参考以下地址:
这里主要说说,目前几个检查javascript内存泄露的工具使用方法:
首先我们用到的工具有三个 Drip/sIEve ,Javascript Leaks Detector, leak monitor。其中前两个是用于检查ie的,leak monitor 是用来检查firefox的情况的。这里重点说一下ie下的这两个工具,由于firefox的GC机制比ie强壮,只要ie的问题消除了,其他浏览器基本上不会有什么问题。
1.Drip/sIEve
Drip和sIEve的作者应该是同一个人,连open souce上的项目都是在一起的。不过,平时我们主要使用sIEve就可以了,sIEve的功能比Drip强大一些
sIEve 界面很简单,左侧:内嵌了一个浏览器控件,我可以访问任何网址,下方还有个内存检查,这样我们可以方便看出内存的升降情况以及dom使用数量曲线。
右侧面板,我们可以通过 Show in use 看到目前页面使用的do ......