簡體   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