Показать неверный HTML-код на странице, который не влияет на остальную часть страницы - PullRequest
1 голос
/ 30 сентября 2011

У меня есть несколько страниц с подробным контентом на моем сайте, где я не могу полностью контролировать HTML-контент, отображаемый в определенном div. Теперь, когда содержимое внешнего ресурса содержит недопустимый HTML-код, например отсутствие курсора в правой панели также курсивом. Я не хочу использовать iframes, такие как ebay, и, возможно, есть другие способы исправить это. Надеюсь на ответ.

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

Упрощенная структура моей страницы выше.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Я думаю, что нет другого пути, кроме использования фреймов.Если вы не используете iframe для размещения внешнего контента, это означает, что внешний контент будет включен в структуру DOM вашей страницы, поэтому, если вы не проанализируете весь код внешнего контента, чтобы проверить все возможные вещи, которые должны повлиять на вашу страницу (и это может быть безумием), вы никогда не будете уверены, что ваша страница будет защищена от побочных эффектов, исходящих от внешнего кода.

И даже используя iframes, вы все равно должны анализировать внешний контент для поиска тегов скрипта, чтобы предотвратить выполнение нежелательного кода javascript внутри вашей страницы.

0 голосов
/ 30 сентября 2011

Мне не нравится говорить людям, что они используют Таблицы, когда они не нужны, но в этом случае я чувствую, что это может решить вашу проблему.

Проблема, с которой вы сталкиваетесь, заключается в правильной проверке HTML одним из браузеров, поэтому у вас могут быть некоторые браузеры, которые работают так, как вы надеетесь, и другие, которые работают так, как вас беспокоит, так как каждый механизм рендеринга собирается выполнить свой собственный правильно сформированный HTML проверить вкус.

Если вы завернете его в тд, то я не думаю, что он сможет стереть с лица, как вы видите. Просто мысль. Причина, по которой контейнер td поможет больше, чем контейнер div, который вы используете в настоящее время, заключается в следующем: так как вы упаковываете их вещи в div, и они, скорее всего, упаковывают свои вещи в div, браузер не ' не знаю, где ошибка. Он не знает, куда следует вставить отсутствующий тег div. Таким образом, по сути, div в div в div создает проблемы для правильной проверки html, поскольку неясно, какой из тегов вы забыли. Однако, div в div в td, это более отчетливо. Если тд открывается и закрывается, то он знает, что отсутствующие тэги относятся к меньшей группе возможных элементов. Другими словами, вы правильно упорядочиваете проверку, выполняя свою работу, заключая ее в разные типы тегов.

Это имеет смысл для меня. Я надеюсь, что я объяснил это хорошо.

...