2011-09-30 5 views
1

J'ai des pages de contenu détaillées sur mon site où je n'ai pas le contrôle complet sur le contenu html qui est affiché dans un certain div. Maintenant, lorsque le contenu de la ressource externe contient html invalide, comme n'ayant pas de fin ma navigation dans la barre de droite est également en italique. Je ne veux pas utiliser les iframes, comme ebay, et il y a probablement d'autres façons de résoudre ce problème. J'espère sur une réponse.Afficher le code html incorrect sur la page qui n'influence pas le reste de la page

<html> 
<body> 
<div id="page"> 
<div id="content">[content of external resource]</div> 
<div id="right-bar">[My navigation]</div> 
</div> 
</body> 
</html> 

Une structure simplifiée de ma page est ci-dessus.

+3

Comment insérez-vous cette source externe? AJAX? La page générée côté serveur? – Thor84no

Répondre

0

Je déteste dire aux gens d'utiliser des tables quand elles ne sont pas nécessaires, mais dans ce cas, je pense que cela pourrait résoudre votre problème. Le problème que vous rencontrez est l'un des contrôles html bien formés des navigateurs, donc, vous pourriez avoir des navigateurs qui fonctionnent comme vous l'espérez, et d'autres qui fonctionnent de la façon qui vous dérange, comme chaque moteur de rendu va pour effectuer sa propre saveur de vérification html bien formée.

Si vous l'enveloppez dans un td, alors je ne pense pas qu'il sera capable de saigner comme vous le voyez. Juste une pensée. La raison pour laquelle un conteneur td va aider plus que le conteneur div que vous utilisez actuellement est la suivante: Puisque vous enveloppez leurs trucs dans un div, et ils sont très probablement en train d'envelopper leurs propres trucs dans les divs, le navigateur ne le fait pas Je ne sais pas où est l'erreur. Il ne sait pas où l'étiquette div manquante doit être insérée. Donc, pour l'essentiel, div dans div dans div crée des problèmes pour le chèque html bien formé, car il n'est pas sûr de quel tag vous avez oublié. Cependant, div dans div in td, c'est plus distinct. Si le td s'ouvre et se ferme, alors il sait que les balises manquantes appartiennent à un plus petit groupe d'éléments possibles. En d'autres termes, vous facilitez la tâche du chèque bien formé en l'enveloppant dans différents types de tags.

Cela a du sens pour moi. J'espère que je l'ai bien expliqué.

+0

Effacer la réponse, merci, va y jeter un coup d'oeil – user972546

+0

accepter la réponse bro ... – frosty

0

Je pense qu'il n'y a pas d'autre moyen que d'utiliser des iframes. Si vous n'utilisez pas un iframe pour héberger le contenu externe, le contenu externe sera inclus dans la structure DOM de votre page, donc à moins d'analyser tout le code de contenu externe pour vérifier toutes les choses qui devraient affecter votre page (et cela pourrait être une folie), vous ne serez jamais sûr que votre page sera à l'abri des effets collatéraux provenant du code externe. Et même en utilisant des iframes, vous devriez toujours analyser le contenu externe pour rechercher des balises de script, afin d'empêcher l'exécution de code javascript indésirable dans votre page.

+0

Je suis d'accord avec vous et je ne veux pas aller de cette façon de tout vérifier. – user972546

Questions connexes