Как добавить атрибут медиа-атрибута в тег HTML CSS LINK для HTTP HTTP.

StackOverflow https://stackoverflow.com/questions/2730637

Вопрос

Обработчик asp.net webresource.axd http используется для обслуживания ресурсов встроенных в DLL.

Тег HTML ссылки автоматически генерируется ASP.NET.

Я хотел бы перехватить генерацию HTML-тега ссылки для определенного набора встроенных CSS из третьей сторонней DLL и добавить атрибут носителя.

В итоге:

Я хотел бы добавить атрибут медиа в тегу HTML ссылки для HTTP-обработчика asp.net webresource.axd.

Так что это:

<link type="text/css" rel="stylesheet" href="/WebResource.axd?d=XXXXX" />

Похоже, это:

<link media="screen and (min-device-width: 481px)" type="text/css" rel="stylesheet"
 href="/WebResource.axd?d=XXXXX" />

Ваше здоровье

Это было полезно?

Решение

Есть обходной путь. Во-первых, такие ссылки, как это добавляются в Pageголова. Ваша страница должна иметь runat=”server” в <head> Тег для автоматического включения листа в стиле. Страницы, созданные IDE, имеют этот параметр автоматически. Итак, добавленные ссылки - это HtmlLink Тип управления. Идея состоит в том, чтобы повторить управление в Pageзаголовок, найди HtmlLink контролирует и установить необходимый атрибут (или даже атрибуты). Я включаю это в Page_Load мероприятие:

Page.Header.Controls
    .OfType<HtmlLink>()
    .ToList()
    .ForEach(link =>
    {
        link.Attributes["media"] = "screen and (min-device-width: 481px)";
    });

До этого у меня было:

<head id="Header">
    <title></title>
    <link href="App_Themes/MyTheme/main.css" 
          type="text/css" 
          rel="stylesheet" />
</head>

И после результата есть:

Я знаю, это использует Themes состоительный WebResource.axd Но за последний результат будет таким же.

Последняя вещь: на странице может быть еще одна ссылка. Так что было бы хорошо узнать наш Ссылки (ссылки должны быть изменены). Так что если нет id атрибут вы можете узнать их href атрибут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top