首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal:使用l()创建仅锚点链接

问Drupal:使用l()创建仅锚点链接
EN

Stack Overflow用户
提问于 2009-11-09 08:13:41
回答 3查看 19.7K关注 0票数 19

我想输出这个

代码语言:javascript
复制
<a href='#namedanchor'>link</a>

使用l()函数,以便链接仅跳转到当前页面上的锚点。

我原以为这能行得通

代码语言:javascript
复制
l('link', '',  array('fragment' => 'namedanchor'));

但它创建了到www.example.com/#namedanchor而不是www.example.com/currentpage#namedanchor的绝对链接

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-09 18:04:55

如果你想创建一个只包含这个片段的链接,你需要稍微“欺骗”一下url函数。由于它会将基本路径附加到所有内部urls,因此''将变为http://example.com。

您需要做的是将external选项设置为true:

代码语言:javascript
复制
l('link', '',  array('fragment' => 'namedanchor', 'external' => TRUE));

这将提供所需的

代码语言:javascript
复制
<a href='#namedanchor'>link</a>

或者,你可以像Jeremy建议的那样给出完整的url。

票数 41
EN

Stack Overflow用户

发布于 2010-02-24 17:07:06

要使用l()创建锚点:

代码语言:javascript
复制
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
l(t('link text'), $path, array('attributes' => array('name' => 'name-of-anchor')));

这将输出:

代码语言:javascript
复制
<a href="/path/to/currentpage" name="name-of-anchor">link text</a>

然后,使用l()链接到它:

代码语言:javascript
复制
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
l(t('link to anchor'), $path, array('fragment' => 'name-of-anchor'));

这将输出:

代码语言:javascript
复制
<a href="/path/to/currentpage#name-of-anchor">link to anchor</a>
票数 3
EN

Stack Overflow用户

发布于 2009-11-09 14:23:24

以下是l的文档

当没有定义路径时,它看起来不会默认使用当前页面。所以你应该这样称呼它:

代码语言:javascript
复制
l('link', 'currentpage',  array('fragment' => 'namedanchor'));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1698453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档