PHP พิมพ์เวลาตอบคำถามป๊อป! (การเปิดเผยอย่างเต็มรูปแบบ: ฉันไม่ชนะในสำนักงานของเรา)
ตามที่ได้กล่าวไปแล้วนี่คือรหัสl()
ที่เรากังวล:
if (isset($options['fragment']) && $options['fragment'] !== '') {
$options['fragment'] = '#' . $options['fragment'];
}
ดังนั้นนี่คือคำถาม: ค่าอะไรที่ปลดสตริงว่าง แต่ส่งต่อไปนี้?
(isset($var) && $var !== '')
คำตอบคือ: FALSE
!
ดังนั้นเราสามารถลองสิ่งนี้:
l(t('My link'), NULL, array('fragment' => FALSE));
ซึ่งทำให้เรา:
<a href="/#">My link</a>
โชคดีที่เราสามารถตัดเครื่องหมายทับที่นำโดยผ่านexternal => TRUE
:
l(t('My link'), NULL, array('external' => TRUE, 'fragment' => FALSE));
ซึ่งทำให้เรา:
<a href="#">My link</a>
ความเจริญ สิ่งที่เราทำเพื่อหลีกเลี่ยงการเชื่อมสตริง html ด้วยตนเองใช่มั้ย
Postscript:
ฉันไม่แน่ใจว่าฉันขอแนะนำให้พิมพ์ลิงค์เช่นนี้จาก php ภายใต้สถานการณ์ปกติ หากไม่มีจาวาสคริปต์ของคุณลิงก์นั้นจะทำให้ผู้ใช้ของคุณข้ามไปที่ด้านบนของหน้า ( ซึ่งความประหลาดใจเล็กน้อยของฉันคือพฤติกรรมที่ระบุ ) มันควรชี้ไปที่ที่ทำงานได้โดยไม่ต้องใช้จาวาสคริปต์
หากลิงก์จริงๆเพียงทำให้รู้สึกกับจาวาสคริปต์รอบ ๆ (เช่นการควบคุมสำหรับ js เท่านั้นสไลด์โชว์หรืออะไร) ผมคิดว่ามันจะดีกว่าที่จะเพิ่มการเชื่อมโยงไปยังหน้าเว็บที่มีจาวาสคริปต์ อีกวิธีหนึ่งถ้าคุณต้องการวางไว้ในแหล่งที่มาของคุณตรวจสอบให้แน่ใจว่าเป็นdisplay:none
ค่าเริ่มต้น Drupal มี.js
คลาสบน html เพื่อแสดงเมื่อ javascript ใกล้เคียง
javascript:void(0)