我想輸出這些Drupal的:創建錨只與L鏈路()
<a href='#namedanchor'>link</a>
使用l()函數,這樣的鏈接只是跳轉到當前頁面上的錨。
我預計這個工作
l('link', '', array('fragment' => 'namedanchor'));
,但它創建了一個絕對鏈接到www.example.com/#namedanchor
而不是www.example.com/currentpage#namedanchor
我想輸出這些Drupal的:創建錨只與L鏈路()
<a href='#namedanchor'>link</a>
使用l()函數,這樣的鏈接只是跳轉到當前頁面上的錨。
我預計這個工作
l('link', '', array('fragment' => 'namedanchor'));
,但它創建了一個絕對鏈接到www.example.com/#namedanchor
而不是www.example.com/currentpage#namedanchor
如果你想創建只是片段的鏈接,你需要「技巧」的URL功能的位。由於它會將基路徑附加到所有內部URL,''
將變爲http://example.com
。
你需要做的是外部選項設置爲true:
l('link', '', array('fragment' => 'namedanchor', 'external' => TRUE));
這將給所需
<a href='#namedanchor'>link</a>
替代您提供的完整的URL傑里米建議。
這裏是l
文檔它不到風度看起來像它會通過當沒有路徑定義時,默認使用當前頁面。所以,你應該這樣稱呼它:
l('link', 'currentpage', array('fragment' => 'namedanchor'));
要使用1-()創建錨定:
$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>
然後,鏈接到此使用1-():
$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>
完美,謝謝! – ack 2009-11-09 16:59:45
可能應該在'l()'的第一個參數周圍加上't()'函數,對吧? – cdmo 2017-06-01 15:45:15