之间有什么不同
<a href="javascript:jsFunction();">test</a>
和
<a href="javascript:void(0);" onclick="javascript:jsFunction();">test</a>
非常感谢。
之间有什么不同
<a href="javascript:jsFunction();">test</a>
和
<a href="javascript:void(0);" onclick="javascript:jsFunction();">test</a>
非常感谢。
第一个仅适用于a
标签。这是一个链接,被您的浏览器解释为 javascript。
第二个是 DOM 事件,可用于所有标签。
不是这个@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
}
第一个是使用该javascript
协议的链接,告诉浏览器在此之后执行所有内容作为 JavaScript,而不是尝试加载它指向的资源。
另一方面,该onclick
属性是一个实际的 JavaScript 事件处理程序,不应该javascript:
在开始时使用 with - 它已经知道它是 JavaScript,因此不需要被告知将其作为 JavaScript 执行。
但是,为了将您的内容 (HTML) 和功能 (JavaScript) 分开,最好不要使用上述任何一种技术,而是添加(例如)id
属性来标识您的元素,然后使用 JavaScript 绑定您的事件处理程序.
HTML:
<a href="#" id="test-anchor">test</a>
JavaScript:
document.getElementById('test-anchor').onclick = function(event) {
jsFunction();
}