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 स्ट्रिंग को मैन्युअल रूप से, ईएच से बचने से बचने के लिए करते हैं?
परिशिष्ट भाग:
मुझे यकीन नहीं है कि मैं वास्तव में सामान्य परिस्थितियों में php से इस तरह के लिंक को प्रिंट करने की सलाह दूंगा। आपकी जावास्क्रिप्ट के बिना, वह सब लिंक यह करने जा रहा है कि वह आपके उपयोगकर्ता को पृष्ठ के शीर्ष पर ले जाए ( जो कि मेरे थोड़े से आश्चर्य से, विशिष्ट व्यवहार है) )। यह शायद कहीं इशारा करना चाहिए जो जावास्क्रिप्ट के बिना काम करता है।
यदि लिंक वास्तव में केवल जावास्क्रिप्ट के साथ समझ में आता है (जैसे एक js- केवल स्लाइड शो या कुछ के लिए नियंत्रण), तो मुझे लगता है कि जावास्क्रिप्ट के साथ पृष्ठ पर लिंक जोड़ना बेहतर है। वैकल्पिक रूप से, यदि आप वास्तव में इसे अपने स्रोत में रखना चाहते हैं, तो सुनिश्चित करें कि यह display:none
डिफ़ॉल्ट रूप से है। Drupal के पास .js
html के लिए क्लास है, फिर इसे तब दिखाया जाता है जब जावास्क्रिप्ट चारों ओर होता है।
javascript:void(0)