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 за звичайних обставин. Без вашого JavaScript, все це посилання зробить це, коли він перескочить вашого користувача на верхню частину сторінки ( що, на моє легке здивування, є просте поведінка ). Це, мабуть, має вказувати десь, що працює без javascript.
Якщо посилання насправді має сенс лише з javascript навколо (наприклад, елементи керування для слайд-шоу, призначені лише для js або щось подібне), я думаю, що краще додати посилання на сторінку за допомогою JavaScript. Крім того, якщо ви дійсно хочете помістити його у свій джерело, переконайтеся, що це display:none
за замовчуванням. Drupal має .js
клас на html, щоб потім показувати його, коли javascript є навколо.
javascript:void(0)