Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ฟังก์ชัน JavaScript ใน href เทียบกับ onClick

ทั้ง onclick และ href มีพฤติกรรมต่างกันเมื่อเรียก JavaScript โดยตรง นอกจากนี้ สคริปต์ใน href จะไม่ทำงานหากช่วงเวลาระหว่างการคลิกสองครั้งสั้นเกินไป นี่คือเวลาระหว่างการคลิกสองครั้ง (double-click timing)

ตัวอย่าง

ตัวอย่างการใช้งาน href เทียบกับ onClick ใน JavaScript:

<html> 
  <head> 
    <title>JavaScript href vs onClick()</title> 
    <script> 
      function myFunc() { 
        var v = 0; 
        for (var j=0; j<1000; j++) { 
          v+=j; 
        } 
        alert(v); 
      } 
    </script> 
    <a href="javascript:myFunc()">href</a> 
    <a href="#" onclick="javascript:myFunc()">onclick</a> 
  </head> 
  <body> 
  </body> 
</html>

ความแตกต่างสำคัญ

  • href="javascript:...": ทำงานเหมือนลิงก์ ปลายทางคือโค้ด JS อาจก่อให้เกิดปัญหาเรื่อง accessibility และ SEO
  • onclick: แยก“行為” (behavior) ออกจาก "โครงสร้าง" (structure) ตรงตามหลัก Unobtrusive JavaScript
  • แนะนำ: ใช้ <button> หรือ <a> พร้อม addEventListener แทนการเขียน inline handler