14.01.2013
Забавный сайт на тему «какого хрена это происходит именно так в JS» 🙂
http://wtfjs.com/
javascript
ссылки
14.06.2012
<p>Обнаружил такую проблему: <a title=”Cufon” href="https://github.com/sorccu/cufon” target=”_blank” rel=”noopener”>Cufon</a> (заменитель шрифтов, см. <a title=”Cufón – используйте шрифты, какие душа пожелает” href=”http://habrahabr.ru/post/61033/" target=”_blank” rel=”noopener”>здесь</a> и <a title=”Нестандартный шрифт средствами js” href=”http://www.marketer.ru/adv/production/dizajn/tipografika/cufon-nestandartnyj-shrift-sredstvami-js/" target=”_blank” rel=”noopener”>здесь</a>) прекрасно менял все шрифты, цвета и т.п. Но в одном месте ни в какую не хотел изменять цвет шрифта при наведении (:hover).<br />Оказалось, что если ссылка, которая должна hover’иться, находится внутри другого блока текста, который уже обработан Cufon’ом, то она не сможет изменить цвет (!), border и некоторые другие свойства будут меняться без проблем.<br />Итак, ниже показываю, в каких случаях hover’а не происходит, а в каких происходит (в коде все понятно). Либо можно скачать <a href=”/media/uploads/2018/11/09/cufon-test.zip” target=”_blank” rel=”noopener”>архив, вместе со шрифтами</a>, и самому посмотреть.</p>
<!doctype html>
<html>
<head>
<script type="text/javascript" src="test/jquery00.js"></script>
<script type="text/javascript" src="test/cufon-yu.js"></script>
<script type="text/javascript" src="test/Plumb_20.js"></script>
<style>
a, a:link, a:visited { color : #0000cc; }
</style>
</head>
<body>
<div class="example">Lorem <a href="#" class="ahref">Ссылка, вложенная в другой элемент с Cufon'ом, обработка сначала внешнего блока, потом ссылки [hover'а нет]</a> ipsum</div>
<div class="example2"><span class="example">Lorem</span> <a href="#" class="ahref">Ссылка, не вложенная в элемент с Cufon'ом, внутри текста</a> <span class="example">ipsum</span></div>
<div class="example2">Lorem <a href="#" class="ahref">Ссылка, вложенная в другой элемент с Cufon'ом, обработка сначала ссылки, потом внешнего блока</a> ipsum</div>
<div class="example2">Lorem <a href="#">Ссылка без явного указания класса [hover'а нет]</a> ipsum</div>
<a class="ahref" href="#" >Ссылка, не вложенная в другие элементы, которые обрабатываются Cufon'ом</a></p>
<p><script type="text/javascript">
Cufon('.example');
Cufon('.ahref', {
color: '#0000cc',
hover: true,
hover: {
color: '#ccc'
}
});
Cufon('.example a', {
color: '#0000cc',
hover: true,
hover: {
color: '#ccc'
}
});
Cufon('.example2');
</script>
</body>
</html>
верстка
31.05.2012
Можно решить эту задачу так. Для этого в конец компонента bitrix:news (скопировав его) следует вставить функцию:
<?
function addLinkForTag($tagname) {
$taglink = str_replace(' ','+',$tagname); // Пробелы должны заменяться плюсами
return '<a href="/search/?tags='.$taglink.'">'.$tagname.'</a>'; // Добавляем ссылку. Внимание, у вас ссылка может быть не "/search/", а какая-либо другая!
}
?>
И для тех же статей (при условии, что все стандартно) в компоненте bitrix:news.list можно написать что-либо подобное:
<?foreach($arItem["FIELDS"] as $code=>$value):?> // Это уже было - стандартный перебор свойств каждой новости
<small>
<?
if (GetMessage("IBLOCK_FIELD_".$code) == 'Теги') { // Желательно написать как-нибудь по другому, но на данный момент идей как правильно - нет :)
if(CModule::IncludeModule("search")) { // Необходимо подключить модуль поиска. Без него работать не будет
$tags_array = tags_prepare($value, "s1"); // Распиливаем теги в массив
echo GetMessage("IBLOCK_FIELD_".$code).': '; // Выводим название "Теги"
$tags_array = array_map("addLinkForTag",$tags_array); // Применяем функцию для создания ссылок для элементов массивов
$result_tags = implode(", ", $tags_array); // Соединяем все обратно в одну строку
echo $result_tags; // Выводим результат
}
} else { // Если у нас не Тег, то просто выводим как обычно "ключ" : "значение" (эта строка была по умолчанию)
echo GetMessage("IBLOCK_FIELD_".$code).': '.$value;
}
?>
</small>
<br />
<?endforeach;?>
Затем создаем страницу в битриксе и вставляем в нее компонент поиска bitrix:search.page. Собственно, ссылка на него и будет ссылкой, на которую надо поменять мой “/search/”.
bitrix