`

超链接的onlick和href

    博客分类:
  • jsp
阅读更多
链接的onclick 事件被先执行,其次是href 属性下的动作(页面跳转,或 javascript 伪链接);
假设链接中同时存在href 与onclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false 的返回值;
如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作。应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动;
如果在链接的 href 属性中调用一个有返回值的函数,当前页面的内容将被此函数的返回值代替;
在按住Shift键的情况下会有所区别。
今天我遇到的问题,在IE6.0里以href的形式访问不到parentNode。
尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

相信大家一定对<a/>标签一定熟悉的不能在熟悉了,但是你们有没有深刻理解href和onclick两个属性的意义呢?之前用href和 onclick属性也是一直很随意,但后来出过几次问题,现在把这个问题总结到下面,希望对遇到过同样困惑的朋友有所帮助。 
首先摘录一篇文档:

在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;
}
分享到:
评论

相关推荐

    html onlick函数详解

    &lt;a href="#" onclick="navigateToPage('/new-page')"&gt;访问新页面 function navigateToPage(url) { window.location.href = url; } ``` 2. **表单提交:** 点击提交按钮时发送表单数据到服务器。 ```...

    Web技术与应用复习提纲.docx

    * HTML标签的属性和事件,如alt、src、href、onlick、onchange等 二、ASP.NET中的对象 * Page对象:表示当前Web页面,提供了页面的生命周期和事件处理机制 * Response对象:表示服务器对客户端的响应,提供了输出...

    javascript中onclick(this)用法介绍

    在Web开发中,JavaScript是用于实现网页交互...在事件处理函数内部,我们可以访问到这个对象的所有属性和方法,从而实现对事件的处理和响应。通过这种机制,开发者可以实现对用户交互的实时响应,增强网页的用户体验。

    图片预览案例

    &lt;a href="full-image.jpg" onclick="previewImage(this); return false;"&gt; 预览"&gt; ``` 在上面的代码中,`onclick`事件调用了名为`previewImage`的JavaScript函数,该函数接收当前被点击的元素(在这个例子中是...

    Android代码-ExpandableRecyclerView

    5.支持GroupItem,ChildItem的Onlick,OnLongClick事件。 6.展开收起带动画。 效果图: 使用步骤:加入依赖 compile 'com.drawthink:expandable-recyclerview:0.0.3' 1.继承BaseViewHolder,实现自己的ViewHolder ...

    js事件处理程序跨浏览器解决方案

    5. 阻止事件的默认行为和事件冒泡:`preventDefault`方法用于阻止事件的默认行为,如阻止超链接的跳转;`stopPropagation`方法用于阻止事件的冒泡,防止事件继续传播到其他元素。 6. 获取事件目标元素:`getTarget`...

    2021-2022计算机二级等级考试试题及答案No.3442.docx

    9. 超级链接确认:使用 `onlick` 事件和 JavaScript 可以在点击链接前弹出确认对话框。 10. 字符串比较:在 C/C++ 或相关编程语言中,比较两个字符串是否相等通常使用 `strcmp()` 函数,返回值为 0 代表字符串相等...

    前端面试题含答案.pdf

    Onlick 事件用于响应鼠标点击事件,onfocus 事件用于响应元素获取焦点事件,onload 事件用于响应页面加载完成事件,onmousedown 事件用于响应鼠标按键被按下事件。 5. HTML 元素 alt 和 title 属性:问题 5 中,...

    VR-Project-1:CS 4331-002:CS中的主题:虚拟现实-项目1:“从内而外体验到的人类规模场景”

    如何将对象绑定到JavaScript函数(使用onlick =“ functionName()”) 文档对象模型如何工作(DOM) 充分考虑UX的前端设计技术 如何操纵3-D .gltf模型 常规JavaScript库用法 如何使用Chrome的网络开发工具 WebVR...

    深入分析Javascript事件代理

    很久很久以来,总感觉事件发生与事件代理到之间没什么鸟区别。...如果按照之前的我,我会怎么给每一个li标签,添加onlick呢?废话,要是我,肯定简单粗暴。 循环每一个li,然后全部绑定onlick。 于是我的代

    JavaScript event对象整理及详细介绍

    1. type:事件的类型,如onlick中的click; 2. srcElement/target:事件源,就是发生事件的元素; 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以...

    blade-script:一个软件包,可以轻松地将已转译和缩小的脚本添加到刀片组件中

    该软件包可轻松将已转译和缩小的脚本添加到刀片组件中。 &lt;button class = "btn" onlick= "myFunction()" &gt;{{ $ slot }}&lt;/button&gt; function myFunction () { // Do something. } 介绍 如果您要向刀片...

    浅谈javascript中return语句

    在上面的示例中,当用户点击了id为theLink的标签时,onlick事件处理函数会被触发,函数内部的return false语句执行,这不仅阻止了链接的默认跳转行为,而且阻止了事件冒泡。 另外,需要了解的是,如果return语句...

    [js]javascript事件集合(包有触发事件).pdf

    - 在绑定事件时,注意事件名称的正确性,如`onclick`不应写成`onlick`。 - 事件处理函数最好定义在外部文件中,这样有助于保持HTML结构的清晰,并且在多处可以复用。 - 在使用`window.status`时,需要确保没有在`...

    Android ExpandableRecyclerView使用方法详解

    5.支持GroupItem,ChildItem的Onlick,OnLongClick事件。 6.展开收起带动画。 效果图: 使用步骤:加入依赖 compile 'com.drawthink:expandable-recyclerview:0.0.3' 1.继承BaseViewHolder,实

    javascript 触发事件列表 比较不错

    input type=”button” value=”打开页面” onlick=”window.open(‘xxxx.html’,’newwindow’,’width=456,height=230,toolbar=no,menubar=no,scrollbars=yes’);”&gt; 2.改变事件___onchange 当text或textarea...

    原生js实现图片放大缩小计时器效果

    标题:“原生js实现图片放大缩小计时器效果”和描述:“本文主要介绍了原生js实现图片放大缩小计时器效果的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧”中所蕴含的知识点可以归纳为以下几点: 1. ...

    jQuery实现的点击按钮改变样式功能示例

    ...这里使用了一个表格作为示例,...总之,本文通过一个实际的操作示例,向读者展示了如何利用jQuery实现点击按钮动态改变页面元素样式的功能,同时还为希望进一步学习和掌握jQuery的开发者提供了一系列的扩展阅读资源。

Global site tag (gtag.js) - Google Analytics