#html #mobile #module #dotnetnuke
#HTML #Мобильный #модуль #dotnetnuke
Вопрос:
Я использую модуль DNN MobiNuke (v02.00.03) из DataQuadrant для создания мобильной версии созданного мной веб-сайта. Все идет хорошо, ЗА исключением странной проблемы, с которой я столкнулся с мобильными оболочками. У меня есть простой скин для мобильного устройства, который выглядит следующим образом:
<div id="mobile_frame">
<div id="mobile_header">
...
...
</div>
<div id="main_wrap">
<div id="mobile_main" class="sub">
<div id="ContentPane" runat="server"></div>
</div>
</div>
<div id="mobile_footer">
...
...
</div>
</div>
Возникающая проблема заключается в том, что ЛЮБОЕ содержимое в ContentPane, имеющее пустой тег div, само изменится при отображении в мобильном браузере:
<div class="xxxx"></div>
Изменится на
<div class="xxxx" />
Самая большая проблема, которую это вызывает, заключается в том, что браузер интерпретирует тег как открывающий тег div без закрывающего тега. Поэтому он помещает конечный тег div практически везде, где он хочет. Из-за этого вся разметка после этой области сильно запутывается.
Вот пример кода, каким он должен быть, и как он отображается на странице:
Должно быть:
<div id="main_wrap">
<div id="mobile_main" class="sub">
... Content Here ...
</div>
</div>
<div id="mobile_footer">
...
</div>
</div>
Но он отображается как:
<div id="main_wrap">
<div id="mobile_main" class="sub">
... Content Here ...
</div>
<div id="mobile_footer">
...
</div>
</div>
</div>
Я могу исправить это в разметке, которую я контролирую, поместив внутри тегов, но у меня нет времени / энергии просматривать КАЖДЫЙ модуль, который может отображаться в ContentPane, для проверки наличия пустых тегов. Кроме того, есть места, где я хочу пустой тег, чтобы позже заполнить его содержимым с помощью javascript.
Наконец, я провел тонну исследований, чтобы найти это, и я ничего не могу найти. Самое близкое, что я обнаружил, это то, что это происходит в XSLT при преобразовании некоторого XML, но, насколько я знаю, MobiNuke этого не делает.
Любая помощь приветствуется. Спасибо!
Ответ №1:
Я разобрался с проблемой после обсуждения с поставщиком. В настройках модуля есть параметр, который называется «Включить адаптацию контента». По-видимому, настройка попытается сделать HTML совместимым с XHTML, но у меня это определенно не сработало. Надеюсь, это поможет кому-нибудь еще увидеть это.