我们经常会用链接<a> 来代替 <button> 触发onclick事件。
比如<a href="javascript: alert()">测试</a>
这样做出现的结果就是: 执行了alert()后,直接跳到了一个空页面.因为html本身对 <a>标签的href属性做了处理,所以就会先执行我们自己定义的方法,接着再运行它自身的方法(跳转的方法)。
那么以前我是怎么做的呢? 我将代码改为<a href = "#" onclick="alert()">,这样就不会出现上述的问题了,这个是通过对href属性的了解,只要赋给href=“#”,那么它便不会跳到空页面。 我本以为这样的问题已经解决了,
想不到这种写法也有个问题,就是当页面出现垂直滚动条的时候,比如你的链接是在页面最底端,你需要将滚动条拉下才能看到此链接,你点击链接,就会先执行alert(),这个时候滚动条会自动拉上去到页面顶端,这给使用系统的客户造成了很大的不方便,由于页面自动往顶端跳,用户又要下拉滚动条来操作。这个说明执行了alert()方法后,浏览器自身也执行了自己的方法。
这样考虑之后,现在的做法是 <a href="" onclick = "alert();event.returnValue=false"/>,浏览器也是要响应这个事件,那么我们将这个事件停止传播了,自然也就没上面的问题了,当然event.returnValue只是IE的特有,如果要兼容firefox,mozilla ,可能需要考虑兼容性的编码了,但这不是表达的重点.
所以在平时的页面设计中,最好都是用button来响应onclick事件,如果有涉及到链接的,希望我这种做法能给大家带来帮助。
语言表达有限,如果觉得写得不太清楚的,请大家运行下面的例子,最后三个链接就是我刚刚讲的三种情况,此例子在IE6.0是通过的。
<BODY>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="#" onclick="alert()">test</a> </p>
<p>
<a href="javascript:alert()" >test</a> </p>
<p>
<a href="#" onclick="alert();event.returnValue=false;">test</a> </p>
</BODY>
分享到:
相关推荐
这是我平时积攒的js写的解决共同问题的一些方法,希望对大家有帮助
这是我整理的一点资料,对解决电脑运行速度慢的问题有些帮助,希望对大家有用!
这是我在中软培训过程中制作的一个项目,这个项目包含了一个企业级项目包括的一切文档,都有规范的说明和详细的解释,代码是经过哪些老师的知道写的 没有任何框架只是严格按照MVC架构自己写的JSP...希望对大家有帮助。
在做网站时会遇到许多问题,这里主要解决上传文件的方法以及步骤,希望能对大家有所帮助。
本压缩包“给java初学着的几段小的代码,希望会对大家有帮助.rar”显然是针对Java初学者的一份资源,里面包含了能够帮助他们入门的简单代码片段。尽管标签中提到了"C#",但这里我们主要关注Java编程语言。 【描述】:...
以上所述是小编给大家介绍的解决微信小程序调用moveToLocation失效问题【超简单】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持! 如果你...
同时,“希望可以帮助大家”表达了作者的初衷,即提供一个实用的解决方案,帮助遇到键盘延迟问题的用户。 标签“键盘”和“优化”进一步明确了这个程序的主要功能和目的,它专注于改善键盘的工作效率,通过某种优化...
在描述中,“希望大家有帮助”表明这些题目是作为学习资源分享的,可能包含了不同难度级别的问题,涵盖了算法设计、数据结构、数学应用等多个方面。作者的“呵呵”和“欢迎大家来下载”表达了友善和开放的态度,意味...
描述 "有问题的程序,希望能得到解决,好要写够20个字阿" 提供的信息较少,但可以看出用户正面临一个他们无法独立解决的程序问题。 首先,我们需要分析提供的文件名来推测可能的问题所在: 1. `aa.sln` - 这是一个...
"C#编程的一些实例,希望对大家有点帮助"这个标题揭示了本压缩包文件的核心内容,即一系列旨在帮助开发者掌握C#语言的实用示例。这些例子覆盖了从基础到进阶的各种主题,无论你是刚刚接触编程的新手,还是寻求提升的...
程序员问卷调查---该文档是我精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题
用蛮力法实现的凸包问题解决方案 通过循环来实现求多边形的凸点,从而达到解决问题的目的
这是一个用PSO算法解决背包问题的很不错的matlab源码,希望对大家有帮助
以上这篇laravel 解决后端无法获取到前端Post过来的值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:解决laravel 表单提交-POST 异常的问题详解...
### 解决帮助文件无法打开的办法 在日常使用计算机的过程中,我们可能会遇到帮助文件无法正常打开的情况,这种情况往往会给用户带来不便。...希望本文所提供的解决方案能够帮助到遇到类似问题的用户。
FFT的核心在于其分治策略,即将大问题分解为小问题来解决。32点FFT通常采用Cooley-Tukey算法,此算法分为蝶形运算和位反转两部分。蝶形运算利用复数乘法和加法的特性,将32个数据点分成两个16点的子序列,再将子序列...
在Windows 10操作系统中,Delphi开发人员可能会遇到无法正常访问或查看Delphi的帮助文档的问题。...记住,技术问题的解决往往需要耐心和尝试,希望这些方法能帮助你克服障碍,继续享受Delphi编程的乐趣。
鸽巢原理【演示如何使用鸽巢原理来解决一个问题(超详细)简介】 内容概要: 本文为初学者提供了一个全面的学习指南,通过通俗易懂的语言和详细的代码注释,介绍了鸽巢原理及其在解决实际问题中的应用。文章以小学生...