`

【转】A的href和onclick

阅读更多
http://gocom.primeton.com/blog21307_27051.htm

首先摘录一篇文档:

在Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

void 操作符用法格式如下: 
1. javascript:void (expression) 
2. javascript:void expression 


expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0)

你以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。

下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。

<A HREF="javascript:void(0)">单此处什么也不会发生</A> 


下面的代码创建了一个超级链接,用户单时会提交表单。

<A HREF="javascript:void(document.form.submit())"> 
单此处提交表单</A>

下面代码则执行了subgo()函数,

<a href="javascript:void(0)" onclick="subgo()">点我</a>


在这里,javascript:void(0),没启实质上的作用,它仅仅是一个死链接,执行的函数是subgo()。

<a href="#" onclick="subgo()">点我</a>与<a href="javascript:void(0)" onclick="subgo()">点我</a>区别。


实际上 #包含了一个位置信息默认的锚是#top 也就是网页的上端 ,而javascript:void(0) 仅仅表示一个死链接,没有任何信息。所以调用脚本的时候最好用void(0)

    href一般是指向一个URL地址,也可以调用javascript ,如href="javascript:xxx();",文档中推荐这样写:<a href=" javascript:void(0)" onclick="xxx();">xx</a>,但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。
    我们知道链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick 需要要返回 false ,一般是这样写onclick="xxx();return false;".

TabPane的JS源码,由于onclick没有返回FALSE,当IFRMAE中关闭TABPANE时会导致href执行,页面显示有问题。解决办法就是将下面代码复制到使用TAB的JSP中。
TabPane.prototype.appendTitle = function(tabpage){
   var td = $create("td");
   var strHTML = "<table class="" + TAB_STYLE_TABLE + "" border="0" cellspacing="0" cellpadding="0"><tr>";
   strHTML +="<td><div class=""+TAB_STYLE_LEFT+""></div></td>";
   strHTML +="<td nowarp class=""+TAB_STYLE_MID+"">";
   strHTML +="<div style="white-space:nowrap;page-break-before: always;page-break-after: always;">";
   strHTML += tabpage.getTitle();
   strHTML +="</div></td>";
   if(tabpage.showCloseButton){
    strHTML +="<td nowarp class=""+TAB_STYLE_MID+"">";
    strHTML +="<a class="close" href="#" onclick="$o(\"" + this.id + "\").getTab(\"" + tabpage.id + "\").close();return false;">";
    if(isIE){
     strHTML +="<div></div></a>";
    }else{
     strHTML +="<div class="close"></div></a>";
    }
    strHTML +="</td>";
   }
   if(tabpage.allowReload){
    strHTML +="<td nowarp class=""+TAB_STYLE_MID+"">";
    strHTML +="<a class="reload" href="#" onclick="$o(\"" + this.id + "\").getTab(\"" + tabpage.id + "\").reload();return false;">";
    if(isIE){
     strHTML +="<div></div></a>";
    }else{
     strHTML +="<div class="reload"></div></a>";
    }
    strHTML +="</td>";
   }
   strHTML +="<td><div class=""+TAB_STYLE_RIGHT+""></div></div>";
   strHTML +="</td></tr></table>";
   td.className = TAB_STYLE_NOMAL + this.styleSuffix;
   td.innerHTML = strHTML;
   tabpage.__titleTD = td;
   tabpage.setTitleTD();
   tabpage.initStatus();
   this.__titleTR.insertBefore(td,this._titleTD);
   tabpage.titleWidth = td.offsetWidth;
}
 
分享到:
评论

相关推荐

    A标签中通过href和onclick传递的this对象实现思路

    在blog的后台管理中允许为一个分类添加一个地址,但是不好添加onclick事件。想传递当前对象给一个函数,于是就将这个URL写成”[removed]shoControlSidebar(this)”,可是结果... 这是&lt;a&gt;和&lt;a&gt;不同的地方。 当使用onc

    a标签的href与onclick事件的区别详解

    以前一直很随意,后来看.net里的linkbutton似乎是用在&lt;a&gt;的形式,今天用这种方式就遇到一些问题,摘网友的文章和我的结论放在下面: 1.链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 ...

    详解Html a标签中href和onclick用法、区别、优先级别

    本文主要分享一篇关于Html A标签中href和onclick用法、区别、优先级别,具有很好的参考价值,有需要了解的朋友可以看看

    html超链接a标签的href跳转跟onclick之间执行顺序示例介绍

    html超链接a标签的href跳转跟onclick之间执行关系:如果onclick返回false,则a不进行跳转,如果onclick返回true,则a跳转,感兴趣的朋友可以了解下本

    a标签href属性与onclick事件使用实例

    a标签主要用来实现页面跳转,可以通过href属性实现,也可以在onclick事件里实现,下面为大家简要介绍下其具体的使用

    a标签的href和onclick 的事件的区别介绍

    a标签的href与onclick事件,想必大家不陌生吧,至于它们有什么区别,你知道吗?下面就为大家介绍下,感兴趣的朋友可以学习下,希望对大家有所帮助

    a标签href属性和onclick事件的比较介绍

    首先说一下, href属性 和 onclick事件 的执行顺序,当鼠标点击a标签的时候会先执行 onclick事件, 然后才是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想执行href 属性下的动作执行,onclick ...

    Jquery为a标签的href赋值实现代码

    代码如下: [removed] function doTest(){ var value = $(“input[name=’dizhi’][type=’radio’]:checked...input name=”dizhi” type=”radio” id=”dizhi” onclick=”doTest()” value=”&lt;?php echo $rsaddr

    解决Layui中templet中a的onclick参数传递的问题

    &lt;a href='[removed];' bfnclick='showContent({{d.CONTENT}})'&gt;查看内容&lt;/a&gt; [removed] 项目跑了许久,突然说点击查看内容没反应,查出原因是,d.CONTENT如果有单引号或者双引号会报js错误。 于是改成下面的形式...

    详解a标签添加onclick事件的几种方式

    1. a href=”[removed]js_method();” rel=”external nofollow” 这种方法在传递this等参数的时候很容易出问题,而且[removed]协议作为a的href属性的时候不仅会导致不 必要的触发[removed]事件,在IE里面更会使gif...

    [removed].href = [removed].href 跳转无反应 a超链接onclick事件写法

    js下[removed].href = [removed].href 跳转无反应 a 超链接 onclick 点击跳转无反应问题的解决方法

    标签中的href如何调用js代码.pdf

    html中,在标签中设的href调用js代码,共有以下几种方式 &lt;a href ="javascript:void(0);" onclick ="js_method()"&gt; ...&lt;a href = "#" onclick ="js_method();return false"&gt; 本文使用第二种方式

    详解a href=#与 a href=[removed]void(0) 的区别

    a href=#&gt; 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP &lt;a&gt; 点击链接后,页面不动,只打开链接 &lt;a&gt; 作用同上,不同浏览器会有差异。 点击链接后,不想使页面滚到页首,就用href=[removed]void(0),不要用...

    在JS中a标签加入单击事件屏蔽href跳转页面

    这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且[removed]协议作为a的href属性的时候不仅会导致不必要的触发[removed]事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在...

    ie6下a标签的onclick事件不执行问题解决方案

    代码: 复制代码代码如下: &lt;a&gt;点我咯&lt;/a&gt; [removed] var loadiframe = function(){ alert&#40;‘弹不出来!... 4、onclick="loadiframe();return false"; 5、最后的解决方案,替换标签,把&lt;a&gt;换为 &lt;

Global site tag (gtag.js) - Google Analytics