href =“javascript:jsfunction();”之间有什么不同和onclick =“javascript:jsfunction();”

时间:2012-09-27 12:01:14

标签: javascript html

  

可能重复:
  What is the difference between the different methods of putting JavaScript code in an <a>?

之间有什么不同
<a href="javascript:jsFunction();">test</a>

<a href="javascript:void(0);" onclick="javascript:jsFunction();">test</a>

非常感谢。

3 个答案:

答案 0 :(得分:3)

第一个仅适用于a标记。它是一个链接,由您的浏览器解释为javascript。

第二个是DOM事件,可用于所有标签。

答案 1 :(得分:1)

第一个是使用javascript协议的链接,告诉浏览器在此之后执行所有操作,而不是尝试加载它指向的资源。

另一方面,onclick属性是一个实际的JavaScript事件处理程序,不应该在开始时与javascript:一起使用 - 它已经知道它是因此,不需要告诉JavaScript将其作为JavaScript执行。

但是,为了分离您的内容(HTML)和功能(JavaScript),最好不要使用上述技术,而是添加(例如)id属性来识别您的元素和然后使用JavaScript绑定事件处理程序。

HTML:

<a href="#" id="test-anchor">test</a>

JavaScript的:

document.getElementById('test-anchor').onclick = function(event) {
    jsFunction();
}

答案 2 :(得分:1)

不是这个@param

<a href="javascript:jsFunction(this);">test1</a>

成功这个@param

<a href="javascript:void(0);" onclick="javascript:jsFunction(this);">test2</a> 


function jsFunction($this) {

    return $this; // not href  attribute this @param ; onClick attribute success  this @patam
}