繁体   English   中英

调用javascript函数onclick =“ fn1()”和onclick =“ javascript:fn1()”时有什么区别

[英]Is there any difference when calling a javascript function onclick=“fn1()” and onclick=“javascript:fn1()”

直接在onclick =“ fn1()”和onclick =“ javascript:fnq()”上调用函数有什么区别?

最好的方法是什么?

谢谢

它们在功能上是等效的。 哪个最好? 都不是。 不要混合使用标记和JavaScript。 而是将函数绑定到您的元素:

<div id="element"></div>

现在有多种方法可以做到这一点:

// Find element
var el = document.getElementById('element');

// Option 1:
el.onclick = function() {
    fn1();
};

// Or by reference:
el.onclick = fn1;

// Option 2:
if (el.addEventListener) {
    el.addEventListener('click', fn1, false);
} else {
    el.attachEvent('click', fn1);
}

区别在于onclick="fn1()"表示您认为的功能(“运行函数fn1() “),而onclick="javascript:fnq()"使用javascript:作为fnq()语句的无用标签 fnq() 请注意,您还可以编写onclick="foobarbaz:fnq()" ,它会做同样的事情; javascript绝对没有什么特别的。 (您可能会考虑使用javascript:作为<a href="javascript:fnq()">的URL协议,其中javascript:http:将具有相同的通用用途:它将指示URL的类型。 )

其中, onclick="fn1()"是更好的做法,尽管通常最好从JavaScript附加点击处理程序,而不是先将其放入HTML。

我相信W3C已将javascript内联。

仅当尝试在事件处理程序中使用两种不同的脚本语言时,才使用内联javascript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM