a 标签中调用js的几种方法

 我们常用的在a标签中有点击事件:
1. a href="javascript:js_method();"

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

2. a href="javascript:void(0);" onclick="js_method()"

这种方法是很多网站最常用的方法,也是最周全的方法,onclick方法负责执行js函数,而void是一个操作符,void(0)返回undefined,地址不发生跳转。而且这种方法不会像第一种方法一样直接将js方法暴露在浏览器的状态栏。

3.a href="javascript:;" onclick="js_method()"

这种方法跟跟2种类似,区别只是执行了一条空的js代码。

4.a href="#" onclick="js_method()"

这种方法也是网上很常见的代码,#是标签内置的一个方法,代表top的作用。所以用这种方法点击后网页后返回到页面的最顶端。

5.a href="#" onclick="js_method();return false;"

这种方法点击执行了js函数后return false,页面不发生跳转,执行后还是在页面的当前位置。

我看了下taobao的主页,他们采用的是第2种方法,而alibaba的主页是采用的第1种方法,和我们的区别是每个href里的javascript方法都用try、catch包围。

综合上述,在a中调用js函数最适当的方法推荐使用:
a href="javascript:void(0);" onclick="js_method()"
a href="javascript:;" onclick="js_method()"
a href="#" onclick="js_method();return false;"

js的方法中 字符串型要加引号

时间: 2024-12-22 00:12:03

a 标签中调用js的几种方法的相关文章

在ASP中调用存储过程的几种方法

存储过程 1 这也是最简单的方法,两个输入参数,无返回值:set connection = server.createobject("adodb.connection")connection.open someDSN Connection.Execute "procname varvalue1, varvalue2" '将所有对象清为nothing,释放资源connection.closeset connection = nothing 2 如果要返回 Record

在ASP中调用存储过程的几种方法_存储过程

1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open someDSN  Connection.Execute "procname varvalue1, varvalue2"  '将所有对象清为nothing,释放资源 connection.close set connection = nothing 2 如果要返回 Recor

在Python中调用ggplot的三种方法_python

本文提供了三种不同的方式在Python(IPython Notebook)中调用ggplot. 在大数据时代,数据可视化是一个非常热门的话题.各个BI的厂商无不在数据可视化领域里投入大量的精力.Tableau凭借其强大的数据可视化的功能成为硅谷炙手可热的上市公司.Tableau的数据可视化的产品,其理论基础其实是<The Grammar of Graphic>,该书提出了对信息可视化的图表的语法抽象体系,数据的探索和分析可以由图像的语法来驱动,而非有固定的图表类型来驱动,使得数据的探索过程变得

javascript中调用js文件的实现方法

 代码如下 复制代码 new_element=document.createElement("script"); new_element.setAttribute("type","text/javascript"); new_element.setAttribute("src","a.js");// 在这里引入了a.js document.body.appendChild(new_element); 方法利

JavaScript中调用函数的几种方法

当浏览器中添加新的API功能,尽管这个API提供了更多的功能和权限,我认为他们可能会给我的项目带来更多困惑,无论是API的问题还是项目编写的构想,我们都可以尝试去使用它,你一定会遇到不符合你项目程序的错误代码.使用try/catch运行这些API,它使代码更清洁.副作用少. JavaScript中安全的调用函数方法 我们在控制台为用户输出一段话.  代码如下 复制代码 function attempt(fn, args, binding) {     try {         return f

C++中调用JS代码的问题

前段时间开发了一个COM组件配合web前端使用,遇到了C++中调用JS代码的问题,在网上查了很多资料,现 总结一下,留作以后察看. C++中调用JS代码主要有两种情况:1. IE线程中调用:2. 其他线程调用 1. IE线程中调用:这种情况网上已经有很多资料,下面列出示列代码: C++代码 STDMETHODIMP CJsInvoker::InvokeJsFunc(LONG para1, LONG para2, VARIANT jsFunction, LONG* retValue) { CCom

在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行

问题描述 在html中调用js文件(无路径错误和书写错误),但js中的函数无法执行 我在html中调用js文件 这个文件中有5个函数,其中有一个函数已经可以用了,但是这个文件中的另外两个函数在调用的时候却没有反映,具体代码如下html代码 <form name=""form_dx"" action=""#"" method=""post"" onSubmit=""

为什么要在cs文件中调用js函数

问题描述 我有个问题想问下大家,为什么有的时候要在cs文件中调用js函数,还有有时候要在js里面调用cs函数,一直比较迷惑,不是太清楚,能举个例子详细的介绍下吗谢谢了 解决方案 解决方案二:js调用cs的函数是ajax,cs调用js的函数,有时是为了实现某个特定的效果,才会这么做解决方案三:谢谢你的回答,不过能说得再详细点吗,我刚开始学习,好多地方不明白谢谢解决方案四:当然是实现需求了.服务端输出JS最典型的是response.write("<script>alert('notice

cordova插件能否在oc中调用js

问题描述 cordova插件能否在oc中调用js 使用cordova编写了一个插件,可以js调用oc,想知道能否oc调用js. 网上找了些资料,大部分都是js调用oc的. 请求各位大神给个示例. 解决方案 ionic JS与OC互操作插件