2010-02-23 5 views
2

Je dois incorporer une page Web dans une autre, la page intérieure sera entourée d'un <div> et ne pas contenir le html, titre de tête ou d'autres choses comme ça, mais la page intérieure peut Je renferme actuellement <link> pour que je ne veuille pas affecter la page externeComment puis-je intégrer une page Web dans un autre et isoler CSS

Je récupère actuellement le html avec ajax et l'insère dans la dom extérieure, pour contourner les styles en conflit j'extrais tout lien avant de l'intégrer dans le dom, récupère ce CSS avec ajax, analyse les styles et applique-les en ligne en utilisant les sélecteurs jquery. Cela a des problèmes évidents avec des choses comme les sélecteurs de pseudo, mais le principal problème est que les styles de la page externe affectent la page intérieure, je ne peux pas réinitialiser tous les styles possibles, et j'ai besoin d'accéder aux pages intérieures dom donc en utilisant un iframe est hors de question.

C'est une configuration assez complexe, mais je me demandais si quelqu'un avait vu quelque chose le long de lignes similaires ou avait une meilleure approche.

Vive Dale

+0

-vous avoir le contrôle sur la page intérieure et extérieure? Si vous le faites, je vais proposer une solution un peu simple. –

+0

la page intérieure peut être arbitraire html, mais je peux être flexible à ce sujet, j'ai le plein contrôle de la page externe. –

+0

Peut-être avez-vous des contraintes, mais avez-vous essayé d'utiliser un iframe au lieu d'un div, ou à l'intérieur du div? – Mic

Répondre

1

vous pouvez affecter un identifiant unique à la div et préfixer le sélecteur à toutes les règles du css.

HTML Avant

<div> 
    <!--start ajax content --> 
    <a href="#"> Content </a> 
    <!--end ajax content --> 
</div> 

CSS Avant

a {color:#999;} 

HTML Après

<div id="unique0001"> 
    <!--start ajax content --> 
    <a href="#"> Content </a> 
    <!--end ajax content --> 
</div> 

CSS Après

#unique0001 a {color:#999;} 
+0

yup qui était la solution originale avant d'aller chercher le css avec ajax, je peux y revenir puisque le fetch devient mais il ne résout pas le problème des styles externes affectant la page intérieure. –

+0

Oups, j'ai raté la partie de ne pas vouloir que le css externe affecte le code HTML interne. Je ne sais pas si c'est possible sans un iframe ou des réinitialisations css très complexes. – timrwood

Questions connexes