Можно ли сделать так, чтобы все html-ссылки имели один и тот же заголовок?


Дело в том, что у меня есть таблица, содержащая ~2000 строк, где каждая строка содержит ссылку с одинаковым названием, например

<a id="1" title="A very long string common to all my links that i would like to have only once in the file in order to gain weight" href="goThere1">My 1st link</a>
[...]    
<a id="2000" title="A very long string common to all my links that i would like to have only once in the file in order to gain weight" href="goThere2000">My 2000th link</a>

Мне интересно, можно ли не использовать эту очень длинную строку заголовка 2000 раз!?

 2
Author: hoang, 2010-08-25

3 answers

Одним из решений было бы использовать Javascript для добавления всех заголовков ссылок после загрузки страницы. Это означает, что загрузка для пользователя будет небольшой - хотя в зависимости от того, какой длины строка на самом деле, она может занять больше памяти. Еще один возможный недостаток: поисковые системы и некоторые программы чтения с экрана могут не видеть заголовки ссылок.

Сначала добавьте класс в свои ссылки. Я сделал его очень коротким, чтобы как можно меньше раздуваться, но вам может понадобиться более описательный класс имя.

<a id="1" class="t" href="goThere1">My 1st link</a>
[...]    
<a id="2000" class="t" href="goThere2000">My 2000th link</a>

Затем добавьте этот Javascript (непроверенный, но должен работать):

<script type="text/javascript">
var titleString = "A very long string common to all my links that i would like to have only once in the file in order to gain weight."
var links = document.getElementsByClassName('t');
for ( var l in link )
{
    l.setAttribute('title', titleString);
}
</script>
 3
Author: DisgruntledGoat, 2010-08-25 14:16:50

Если вы хотите, чтобы атрибут title действовал для каждого элемента , не помещая заголовок против каждой ссылки, затем вложите его в DIV и назначьте атрибут title DIV.

Например, сравните http://jsfiddle.net/tgew9/

<a id="1" title="A very long string common to all my links that i would like to have only once in the file in order to gain weight" href="goThere1">My 1st link</a>
[...]    
<a id="2000" title="A very long string common to all my links that i would like to have only once in the file in order to gain weight" href="goThere2000">My 2000th link</a>?

С http://jsfiddle.net/tgew9/1/

<div title="A very long string common to all my links that i would like to have only once in the file in order to gain weight">
<a id="1" href="goThere1">My 1st link</a>
[...]    
<a id="2000" href="goThere2000">My 2000th link</a>
</div>
 2
Author: Metalshark, 2010-08-25 11:02:38

Если ваши ссылки находятся в базе данных, то у вас есть несколько вариантов, оба из которых просты в использовании.

1) Обновите свою базу данных, включив в нее тег заголовка. Если у вас еще нет столбца для тега заголовка, создайте его, а затем выполните следующий запрос: UPDATE tablename SET title = 'Очень длинная строка, общая для всех моих ссылок, которую я хотел бы иметь только один раз в файле, чтобы набрать вес';. Затем всякий раз, когда вы динамически генерируете страницы, которые используют эти ссылки, просто вытаскивайте и распечатайте заголовок вместе с остальной частью ссылки.

2) Поскольку текст одинаков для каждой ссылки, просто жестко закодируйте его прямо в свой код. Вот пример PHP:

while ($row = mysql_fetch_assoc($result))
{

    echo '<a href="' . $row['url'] . '" title="A very long string common to all my links that i would like to have only once in the file in order to gain weight">' . $row['anchor_text'] . '</a>';

}
 0
Author: John Conde, 2010-08-25 12:15:03