a href=#与 a href=javascript:void(0)的区别?
前天做的页面是一个iframe弹出窗口(说明一下:同事用js脚本开发出来的)里触发一个<a>链接的按钮可在该窗口上弹出一个div悬浮层。但是每次点击,div悬浮层就自动位于IE窗口的顶端,下面的iframe窗口包含的页面会自动上移,位置错乱了。
同事说主要是<a href='#' onclick='click事件名()'></a>这里的href='#'的原因,把它改成三个#就没问题了,即修改为<a href='###' onclick='click事件名()'></a>
嘿,还真好了。后来网上搜了一下估计是:
#包含了一个位置信息
默认的锚点是#top 也就是网页的上端
方法一: 所以为了避免这个位置问题有的人提倡采用的方式是javascript:void(0) 来表示一个死链接。
方法二: 但是也有的人不提倡采用这种方式,看这篇文章:a href=”javascript:void(0);” — avoid the void大概就明白啥回事了,^_^
<a href="#" onclick="doSomething();returnfalse;">Link</a>
或者
<script type="javascript">
function doSomething() {
//doSomething
returnfalse;
}
</script>
<a href="#" onclick="return doSomething();">Link</a>
以往大家不使用"#"的问题是,这将导致点击链接时页面跳回页面顶部,但通过 return false 语句将使得浏览器忽略链接的默认动作,从而避免了此问题。
我想为何同事要用三个#,大概也是让#包含的位置信息失去效果,但为何用三个而不是二个或四个之类的,就不太清楚了。下次有空再测一下。。。知道答案的朋友就给个评论里吧。先道声:谢谢了
相关文档:
脚本中的事件有2种模型
1、 冒泡型事件:事件是按照从最特定的目标到最不特定的事件目标(document)的顺序依次触发。这是针对不同元素的同一事件类型
如:
<html onclick=”handleClick()”>
<head></head>
<body onclick=”handleClick()”>
<div ......
<SCRIPT LANGUAGE="JavaScript">
<!--
function limitNum(obj) {
if(obj.value.replace(/\s/g,"")==""||obj.value.replace(/\s/g,"")=="输入关键字") {
alert('请输入关键字')
return false;
}
}
//-->
</SCRIPT>
< ......
function urlencode( str ) {
// http://kevin.vanzonneveld.net
// + original by: Philip Peterson
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// * example 1: urlencode('Kevin van Zonneveld!');
// * returns 1: 'Kevin+van+Zonneveld%21'
&nb ......
/*
* JavaScript对象就是一组属性(方法)的集合
* 在该语言中如果变量名或方法名不符合声明规范,
* 则一定得用方括号“ [] ”引用它
*
*/
/**
* <1.>该语句声明了一个class1类,class1相当于构造方法,又叫构造器
* 也可说声明了一个class1方法
......
原创于2007年12月16日,2009年10月15日迁移至此。
唉,很久以前写的代码,晒一晒,估计自己看都看不懂了,:(
var head="display:''"
img_close=new Image()
img_close.src="/sysManage/images/f.gif"
img_open=new Image()
img_open.src="/sysManage/images/fo.gif"
img3=new Image( ......