温故而知新,可以为师矣

类别‘Javascript’中的内容

利用Google的jsapi确定客户端所在的位置

作者:admin 时间:12.20.2009 类别:Javascript

Google的jsapi提供了许多有用的功能,其中有一个就是对客户端的检测,用很简单的几句Javascript就可以确定浏览者的地理位置,从而可以进一步做有针对性的处理。下面是一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Google API Test</title>
</head>
<body>

<script src="http://www.google.com/jsapi" language="javascript"></script>
<script language="javascript">
    if (google.loader.ClientLocation != null) {
        document.write("您的位置是: " + google.loader.ClientLocation.address.city
        + "," + google.loader.ClientLocation.address.region);
    } else {
        document.write("Google无法确定你的位置");
    }
</script>
</body>
</html>

打开上面的网页,我得到的结果是:
您的位置是: Xi'an,Shaanxi

使用jQuery提升链接在IE中的显示效果

作者:admin 时间:12.18.2009 类别:Javascript, jQuery

在平时浏览网页时,我们免不了要天天点击链接,在点击链接时我想大家都能看到在链接周围那条点点组成的边框吧,如果你点了这个链接而这个链接把你带到了另外一个页面还好,如果它只是想触发一个事件而不把你带到另外一个页面,那么这个点点连成的四四方方的边框就一直显示在那里,看上去真是好丑。当然如果你很幸运地一直在使用一个对CSS支持的比较好的浏览器(比如我天天在用的Firefox),那么你可以用很简单的一条CSS规则就可以去掉这个难看的框框:

1
2
3
a:focus, a:active {
    outline:none;
}

如果你因为各种原因很不幸地还在使用IE 6或者更早的浏览器(有这样的人么?),那么你可以利用jQuery轻松地帮你解决这个问题:

1
2
3
$("a").click(function() {
    $(this).blur();
});

上面的代码会在你点击链接之后移除那个框框,当然在你点击链接的时候这个框框还是会出现的,如果你想要在点击的时候这个框框也不出现,那么你可以稍微修改一下上面的代码,把click事件变成focus事件,如下:

1
2
3
$("a").focus(function() {
    $(this).blur();
});

希望这个对您有用:-)

关于网站中script标签的位置

作者:admin 时间:12.12.2009 类别:Javascript

我在好久以前就看到有些网站在引入js文件时把script标签写在了body的结束标签之前,也就是像下面这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>
<body>

<p>Hello get2know.it<p/>

<script type="text/JavaScript" src="jquery.min.js">
<script type="text/javascript">
    $(function(){
    alert($("p").text());
    });
</script>
</body>
</html>

但是却一直不知道人家为什么要这么写,现在我明白是为什么了,原来把script紧挨着写在body之前有好处的,因为:

  1. script标签写在head里会导致浏览器在遇到script标签时去下载这个js文件,这时浏览器是不会并行地去做其它的download的(比如图片),而用户在这个时候因为dom没有加载完成,所以什么也不会看到,所以给用户的体验不好。
  2. script写在head里会使得浏览器在遇到这些Javascript代码时就去执行它们,而Javascript大多数都是要去操作dom的,而这时dom并不存在,所以这样的Javascript里就得写一些事件注册的代码,比如window.onload=init;之类的,而把script标签写在body结束标签之前时则不需要这样的事件注册的代码,大家想一想一个很简单的道理,代码多了执行需要的时间肯定会长一些,所以说把script标签写在body结束标签之前会提高程序的效率。
  3. 把script标签写在body结束标签之前的话,Javascript代码在被执行时dom已经加载完成,所以不会出现因为dom没有加载完成而出现的一现问题,你可以直接书写你要写的代码,需要打的字会相应地少一点。
  4. 把script标签写在head里是不过是我们长期以来的一种古老的编程习惯罢了。

下面一些网站都把script标签写在了body结束标签之前:

  1. http://www.youku.com
  2. http://www.tudou.com
  3. http://css3.org
  4. http://www.yahoo.com
  5. http://www.qq.com
  6. http://www.sina.com.cn
1 / 11