调用javascript函数onclick=“;fn1()”;并且onclick=“;javascript:fn1()&

Is there any difference when calling a javascript function onclick="fn1()" and onclick="javascript:fn1()"

本文关键字:javascript fn1 onclick 并且 函数 调用      更新时间:2023-09-26

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

什么是最好的方法?

感谢

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

其中,onclick="fn1()"是更好的做法,尽管通常最好从JavaScript中附加点击处理程序,而不是一开始就把它放在HTML中。

它们在功能上是等效的。哪一个最好?也不不要混淆标记和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);
}

我认为将javascript内联已经被W3C贬低了。

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