Comment ajouter un attribut media à la balise html CSS LINK pour le ASP.NET WebResource.axd Http Handler

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

Question

Le ASP.NET WebResource.axd Http Handler est utilisé pour servir des ressources incorporées dans.

DLL

La balise HTML LINK est généré automatiquement par ASP.NET.

Je voudrais intercepter la génération de la balise html LINK pour un certain ensemble de CSS intégré d'un tiers DLL et ajouter un attribut media.

En résumé:

Je voudrais ajouter un attribut média à la balise html LINK pour le ASP.NET WebResource.axd Http gestionnaire.

Alors ceci:

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

apparaît comme ceci:

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

Vive

Était-ce utile?

La solution

Il existe une solution. Tout d'abord, des liens comme celui-ci sont ajoutés à la tête du Page. Votre page doit avoir runat=”server” dans la balise <head> pour l'inclusion de feuille de style automatique. Les pages créées par l'EDI ont ce paramètre automatiquement. Ainsi, les liens ajoutés est un type de contrôle de HtmlLink. L'idée est de itérer grâce à des contrôles dans l'en-tête de Page, trouver des contrôles de HtmlLink et ensemble attribut nécessaire (ou les attributs même). J'inclure cela dans l'événement Page_Load:

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

Avant cela, j'avais:

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

et après le résultat est le suivant:          

Je sais, cette utilisation Themes insted de WebResource.axd mais pour le dernier résultat sera le même.

La dernière chose: il peut y avoir un autre lien dans la page. Donc, il serait bon de reconnaître nos liens (les liens doivent être modifiés). Donc, s'il n'y a pas d'attribut id vous pouvez les reconnaître par attribut href.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top