2009-12-09 3 views
0

У меня возникают проблемы с кнопкой Link, создающей неправильную отметку.Кнопка ASP.NET Link, создающая неправильную отметку

Это должно генерировать что-то вроде этого:

<div style="margin-top: 5px; width: 150px; margin-left: auto; margin-right: auto;"> 
    <a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel" 
    class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')"> 
     <div> 
      <span class="border top"> 
       <span class="border"> 
       </span> 
      </span> 
      <span class="icon cancel"> 
       Cancel 
      </span> 
      <span class="border bottom"> 
       <span class="border"> 
       </span> 
      </span> 
     </div> 
    </a> 
</div> 

Примечание только один тег.

Он заканчивает генерацию иногда это: (!)

<div style="margin-top: 5px; width: 150px; margin-left: auto; margin-right: auto;"> 
    <a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel" 
    class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')"> 
    </a> 
    <div> 
     <a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel" 
     class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')"> 
      <span class="border top"> 
       <span class="border"> 
       </span> 
      </span> 
      <span class="icon cancel"> 
       Cancel 
      </span> 
      <span class="border bottom"> 
       <span class="border"> 
       </span> 
      </span> 
     </a> 
    </div> 
    <a onclick="return JSConfirm('Confirm?');" id="ctl00_cntPrincipal_btnCancel" 
    class="round-corner opt-upload cancel" href="javascript:__doPostBack('ctl00$cntPrincipal$btnCancel','')"> 
    </a> 
</div> 

Уведомления теперь 3 якорных тегов.

Это происходит только на определенном сервере для определенного браузера, на сервере выполняется ASP.NET 2.0 на IIS 6 с использованием Firefox 3.5 для доступа к странице.

Обновление: я просматриваю код, используя FF-источник просмотра, не установлены плагины, документ предположительно XHTML 1.1 Transitional, но я не думаю, что он проверяется, так как вы не можете иметь тег div внутри тегов привязки.

ответ

0

Как вы видите эту разметку? В Firebug? В средстве просмотра источника FF с установленным TidyHTML?

Что (X) HTML декларация использует используя? HTML 4.1? XHTML Transitional? Строгое?

Причина, почему я спрашиваю, что <a> тег определяется как инлайн элемента, так что это не законно, чтобы обернуть его вокруг блок элемента, такие как <div> тег.

Источник, который вы видите в FF, вероятно, был исправлен, чтобы справиться с этим, добавив дополнительные теги привязки внутри и в конце тега div.

Как вы видите эту разметку? В Firebug? В средстве просмотра источника FF с установленным TidyHTML?

Что (X) HTML декларация использует используя? HTML 4.1? XHTML Transitional? Строгое?

Причина, почему я спрашиваю, что <a> тег определяется как инлайн элемента, так что это не законно, чтобы обернуть его вокруг блок элемента, такие как <div> тег.

Источник, который вы видите в FF, вероятно, был исправлен, чтобы справиться с этим, добавив дополнительные теги привязки внутри и в конце тега div.


Неа, то View Source как FF фиксирует его - если вы хотите, чтобы проверить это, вы можете установить ViewSourceWith plugin и просмотреть исходный код в вашем NotePad выбора - я заметил разницу между этими двумя ,

В отличие от ASP.NET 1.1, BrowserCaps в ASP.NET 2.0 распознают FF, Safari и т. Д., Поэтому общий вывод не должен отличаться от того, что вы видите в IE.

+1

Я не думаю, что источник будет добавлять что-либо, это обычный текст со страницы, не так ли? Возможно, ASP.NET сделает это. –

+0

В этом вопросе также упоминается, что Firefox пытается (и не работает) исправлять разметку: http: // stackoverflow.com/questions/1318941/firefox-rendering-html-wrong-иногда Возможно, это какая-то конфигурация или это поведение где-то документировано ... –