我想输出这个
<a href='#namedanchor'>link</a>使用l()函数,以便链接仅跳转到当前页面上的锚点。
我原以为这能行得通
l('link', '', array('fragment' => 'namedanchor'));但它创建了到www.example.com/#namedanchor而不是www.example.com/currentpage#namedanchor的绝对链接
发布于 2009-11-09 18:04:55
如果你想创建一个只包含这个片段的链接,你需要稍微“欺骗”一下url函数。由于它会将基本路径附加到所有内部urls,因此''将变为http://example.com。
您需要做的是将external选项设置为true:
l('link', '', array('fragment' => 'namedanchor', 'external' => TRUE));这将提供所需的
<a href='#namedanchor'>link</a>或者,你可以像Jeremy建议的那样给出完整的url。
发布于 2010-02-24 17:07:06
要使用l()创建锚点:
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
l(t('link text'), $path, array('attributes' => array('name' => 'name-of-anchor')));这将输出:
<a href="/path/to/currentpage" name="name-of-anchor">link text</a>然后,使用l()链接到它:
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
l(t('link to anchor'), $path, array('fragment' => 'name-of-anchor'));这将输出:
<a href="/path/to/currentpage#name-of-anchor">link to anchor</a>发布于 2009-11-09 14:23:24
以下是l的文档
当没有定义路径时,它看起来不会默认使用当前页面。所以你应该这样称呼它:
l('link', 'currentpage', array('fragment' => 'namedanchor'));https://stackoverflow.com/questions/1698453
复制相似问题