ตามที่ระบุไว้ในคำตอบก่อนหน้านี้พฤติกรรมนี้เป็นที่รู้จักกันเข้าถึงชื่อบนวัตถุหน้าต่าง ค่าของnameแอตทริบิวต์สำหรับองค์ประกอบบางอย่างและค่าของidแอตทริบิวต์สำหรับองค์ประกอบทั้งหมดจะพร้อมใช้งานเป็นคุณสมบัติของwindowวัตถุส่วนกลาง สิ่งเหล่านี้เรียกว่าองค์ประกอบที่มีชื่อ เนื่องจากwindowเป็นวัตถุส่วนกลางในเบราว์เซอร์องค์ประกอบที่มีชื่อแต่ละรายการจะสามารถเข้าถึงได้เป็นตัวแปรส่วนกลาง
เดิมนี้ถูกเพิ่มโดย Internet Explorer และในที่สุดก็มีการใช้งานโดยเบราว์เซอร์อื่น ๆ ทั้งหมดเพื่อความเข้ากันได้กับเว็บไซต์ที่ขึ้นอยู่กับพฤติกรรมนี้ น่าสนใจ Gecko (เอ็นจิ้นการเรนเดอร์ของ Firefox) เลือกใช้สิ่งนี้ในโหมด quirksเท่านั้นในขณะที่เอ็นจิ้นการเรนเดอร์อื่น ๆ ปล่อยมันไว้ในโหมดมาตรฐาน
อย่างไรก็ตามในฐานะของ Firefox 14 ตอนนี้ Firefox รองรับการเข้าถึงแบบมีชื่อบนwindowวัตถุในโหมดมาตรฐานเช่นกัน ทำไมพวกเขาถึงเปลี่ยนแปลงสิ่งนี้ ปรากฎว่ายังมีไซต์จำนวนมากที่ใช้ฟังก์ชันนี้ในโหมดมาตรฐาน ไมโครซอฟท์ยังได้เปิดตัวตัวอย่างการตลาดที่ป้องกันไม่ให้ตัวอย่างจากการทำงานใน Firefox
Webkit ได้พิจารณาสิ่งที่ตรงกันข้ามเมื่อเร็ว ๆ นี้ซึ่งมีการตั้งชื่อการเข้าถึงบนwindowวัตถุให้เป็นโหมด quirks เท่านั้น พวกเขาตัดสินใจโดยใช้เหตุผลเดียวกับ Gecko
ดังนั้น ... บ้าอย่างที่ดูเหมือนว่าพฤติกรรมนี้คือตอนนี้ปลอดภัยทางเทคนิคที่จะใช้ในรุ่นล่าสุดของเบราว์เซอร์ที่สำคัญทั้งหมดในโหมดมาตรฐาน แต่ในขณะที่ชื่อเข้าถึงสามารถดูเหมือนสะดวกบ้างก็ไม่ควรนำมาใช้
ทำไม? จำนวนมากของเหตุผลสามารถสรุปได้ในบทความนี้เกี่ยวกับสาเหตุที่ตัวแปรทั่วโลกที่ไม่ดี พูดง่ายๆคือการมีตัวแปรระดับโลกจำนวนมากนำไปสู่ข้อผิดพลาดที่มากขึ้น สมมติว่าคุณพิมพ์ชื่อของ a varและเกิดขึ้นกับการพิมพ์idโหนด DOM โดยบังเอิญโดยไม่ตั้งใจ
นอกจากนี้แม้จะเป็นมาตรฐาน แต่ก็ยังมีข้อขัดแย้งเล็กน้อยในการนำเบราว์เซอร์ของการเข้าถึงที่มีชื่อมาใช้
- IE ทำให้ค่าของ
nameแอตทริบิวต์ที่สามารถเข้าถึงได้อย่างไม่ถูกต้องสำหรับองค์ประกอบของฟอร์ม (อินพุตเลือก ฯลฯ ) 
- Gecko และ Webkit อย่างไม่ถูกต้องไม่
<a>สามารถเข้าถึงแท็กผ่านnameแอตทริบิวต์ของพวกเขา 
- Gecko จัดการองค์ประกอบที่มีชื่อหลายชื่อไม่ถูกต้องด้วยชื่อเดียวกัน (จะส่งคืนการอ้างอิงไปยังโหนดเดียวแทนที่จะเป็นอาร์เรย์ของการอ้างอิง)
 
และฉันแน่ใจว่ามีมากขึ้นถ้าคุณลองใช้การเข้าถึงแบบมีชื่อในกรณีขอบ
ตามที่ระบุไว้ในคำตอบอื่น ๆ ที่ใช้document.getElementByIdจะได้รับการอ้างอิงไปยังโหนด DOM idโดยตัวของมัน หากคุณต้องการที่จะได้รับการอ้างอิงไปยังโหนดโดยตัวของมันใช้แอตทริบิวต์namedocument.querySelectorAll
โปรดโปรดอย่าเผยแพร่ปัญหานี้โดยใช้การเข้าถึงแบบกำหนดชื่อในไซต์ของคุณ นักพัฒนาเว็บจำนวนมากเสียเวลาพยายามติดตามพฤติกรรมที่มหัศจรรย์นี้ เราจำเป็นต้องดำเนินการและรับเครื่องมือการแสดงผลเพื่อปิดการเข้าถึงชื่อในโหมดมาตรฐาน ในระยะสั้นมันจะทำลายบางเว็บไซต์ที่ทำสิ่งไม่ดี แต่ในระยะยาวมันจะช่วยย้ายเว็บไปข้างหน้า
หากคุณสนใจฉันพูดคุยเกี่ยวกับเรื่องนี้ในรายละเอียดเพิ่มเติมเกี่ยวกับบล็อกของฉัน - https://www.tjvantoll.com/2012/07/19/dom-element-references-as-global-variables/