Иногда сделать простые вещи очень непросто. Например, добавить условный комментарии для IE в html. Этим я сегодня и занимался.
В моем текущем проекте нам нужно было поддерживать css
медиа-запросы в IE9. Для этого было решено использовать библиотеку media-match.
Что может быть проще? Пара строк кода с условным комментарием:
<!--[if lte IE 9]>
<script src="/public/media.match.js">
<![endif]-->
Но все оказалось намного сложнее, так как мы используем React.js и делаем изоморфное одностраничное приложение. Кто бы знал, что React не рендерит на странице комментарии, помещенные в .jsx-файлы
. Показынный ниже способ не работает:
renderHead: function() {
return (
<head>
<!--[if lte IE 9]>
<script src="/public/media.match.js"/>
<![endif]-->
</head>
);
}
Единственный способ, который мне удалось найти – dangerouslySetInnerHTML
для head
, внутрь которого я поместил комментарий и все заработало:
renderHead: function() {
return (
<head dangerouslySetInnerHTML={{__html: '<!--[if lte IE 9]><script src="/public/media.match.js"></script><![endif]-->'}}>
</head>
);
}
Следует также отметить, что тэг script
должен быть закрыт отдельно <script></script>
, так как сокращение <script />
не работает в React.
Последняя, но, при этом, большая проблема – если надо поместить несколько таких комментариев в head
. Конечно, можно все просто написать в одну строку, но это выглядит «убого».
Поэтому я, да простят меня парсерсы HTML в браузерах, положил условные комментарии внутри тэга meta
:
renderHead() {
return (
var comment = '<!--[if lte IE 9]><script src="/public/media.match.js"></script><![endif]-->';
<head>
<title>Website title</title>
<meta name="react-comment-hack"
dangerouslySetInnerHTML={{__html: comment}}>
</meta>
</head>
);
}
Успешного «реакта».
© Автор Maks Nemisj
К Амстердаму можно относиться по-разному. Кто-то его любит, кто-то нет. Попробую высказать своё мнение по этому поводу.
Начну с того, что город совершенно небольшой. Здесь официально проживает порядка 830 тысяч человек. Если сравнивать его территорию с Минском, то кажется, что весь Амстердам — это спальный район белорусской столицы. Добраться до центра из любого уголка можно за 15-20 минут.
Амстердам очень популярное место для переезда не только среди иностранцев, но и внутри страны. По этой причине сюда постоянно прибывают все новые и новые жильцы, что вызывает некоторую суматоху на рынке аренды жилья.
Этот вопрос – единственный, который не сомнении меня волнует. Я уже три недели в Нидерландах, но особо не продвинулся в поисках постоянного места жизни.
Здесь есть два варианты аренды: у частного лица и у компании застройщика. У обоих есть как плюсы так и минусы.
Продолжим серию обзоров всяких-разных умных часов (Pebble Steel, Casio STB-1000-1EF). В этот раз взглянем на первые и долгое время считавшееся лучшими часы от компании Motorola – Moto 360.
Мой первый рабочий день должен был быть 1-го апреля. Естественно мне необходимы были несколько дней для адаптации в новой обстановке. По сей причине билет в Амстердам я купил на утро 30 марта. Имея последний день марта в наличии, я договорился о встрече в Экспатцентре и в банке. Экспатцентр занимается выдачей ID (паспорт местный) и регистрации в органах муниципальной власти.