Порядок соответствия целевого браузера файла .browser - PullRequest
0 голосов
/ 15 июля 2010

Мне нужно, чтобы мой веб-сайт был совместим с Chrome. У меня есть адаптер управления TextBox, который соответствует всем браузерам (refID = 'default'), к сожалению, он разбивает страницы в Chrome. Самое простое решение - продолжать использовать старый адаптер для всех браузеров, кроме Chrome. Мой файл .browser выглядит так:

<browsers>
      <browser id="Chrome" parentID="Safari1Plus">
        <identification>
          <userAgent match=".+Chrome/(?'version'(?'major'\d+)\.(?'minor'\d+\.\d+).\d+)" />
        </identification>
        <capabilities>
          <capability name="browser" value="Chrome" />
          <capability name="majorversion" value="${major}" />
          <capability name="minorversion" value="${minor}" />
          <capability name="version" value="${version}" />
        </capabilities>
        <controlAdapters >
          <adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="ChromeTextBoxControlAdapter" />
        </controlAdapters>
      </browser>

      <browser refID="Default">
        <controlAdapters>
          <adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="TextBoxControlAdapter" />
        </controlAdapters>
      </browser>
    </browsers>

Для тестирования сопутствующих данных я установил TextBoxControlAdapter для отображения только текста «DEFAULT», а ChromeTextBoxControlAdapter для отображения только текста «CHROME».

  • В настоящее время все браузеры печатают DEFAULT вместо текстовых полей.
  • Если я закомментирую тег адаптера в разделе браузера по умолчанию, Chrome показывает CHROME, а другие браузеры отображают обычное текстовое поле ASP.NET.
  • Я никак не могу получить Chrome рендер CHROME и все другие браузеры ПО УМОЛЧАНИЮ.

Можно ли вообще так настроить адаптивный рендеринг?

Спасибо

1 Ответ

0 голосов
/ 10 декабря 2010

Я также столкнулся с этой проблемой, и, основываясь на моем предварительном расследовании, я считаю, что узлы "browser refID" не наследуют настройки, как узлы "ID браузера / parentID".

Похоже, что .NET применяет информацию только с первого refID узла, которому она соответствует, а затем игнорирует остальные. Порядок сопоставления - от корня (то есть ID = «По умолчанию») к более конкретному (например, ID = «IE8»).

Существует ошибка на connect.microsoft.com , которая поддерживает эту теорию. ссылка

Я бы предложил применить ваши пользовательские настройки только к refID узлам, у которых нет предков.

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

...