library ที่ใช้กันมานาน ในการ copy text ใดๆ บนหน้าเว็บ เพื่ออำนวยความสะดวกให้กับผู้ใช้ ในการแก้ไข content คือ ZeroClipboard ซึ่งใช้ Flash (SWF) ในการ copy

แต่เนื่องจาก Flash ถูกลดความสำคัญลงมาเรื่อยๆ จนปัจจุบัน การจะรัน Flash บน Chrome นั้นต้องสั่งเปิดเป็นพิเศษ และในอนาคตอาจไม่สามารถใช้งานได้อีกเลย อีกทั้งตัว Flash เองก็มีปัญหาด้านความปลอดภัยอยู่มากมาย

โชคดีที่ Browser ปัจจุบันรองรับ Javascript API ใหม่ๆ เพื่อจัดการกับ content ใน Clipboard ได้ ใครที่มีโอกาสควรปรับโค้ดนะครับ บ๊ายบาย Flash

ดูตัวอย่าง code ได้ใน https://codepen.io/jjoi/pen/NWKpjgm
Reference: https://stackoverflow.com/a/30810322/2580266

Browser รุ่นใหม่ๆส่วนใหญ่รองรับ Clipboard API อยู่แล้ว (navigator.clipboard.writeText()) แต่หากไม่รองรับ ในตัวอย่างจะใช้วิธี fallback โดยการใช้ selector API ร่วมกับ document.execCommand(‘copy’) ตามใน codepen เลยครับ – เคสนี้ยังไม่ได้ทดสอบด้วยตัวเอง

ทริกเล็กๆที่เล่นได้กับ Clipboard คือเราสามารถดักจับ clipboard event (copy, paste) แล้วใส่สิ่งที่เราต้องการไปแทนได้ด้วย ดังในตัวอย่าง https://codepen.io/jjoi/pen/xxKqdJL

navigator.clipboard reference

Leave a Comment

Your email address will not be published. Required fields are marked *