Подтвердить что ты не робот

'WebForm_DoPostBackWithOptions' undefined в IE11 Preview

IE11 подходит. Я только что установил версию предварительного просмотра разработчика. Однако, если я запустил часть своего веб-приложения, и я получил ошибку WebForm_DoPostBackWithOptions undefined.

Ошибка возникла, когда я играл с автоповтором DropDownList.

Кроме того, похоже, что перед IE10 была аналогичная проблема:

http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

4b9b3361

Ответ 1

Наконец, я нашел решение, спасибо совет Scott Hunter.

Если вы хотите решить проблему IE11, установите исправление ниже.

Ответ 2

У меня была аналогичная проблема с тем, что Internet Explorer 11 не был правильно обнаружен в среде .NET 4.0. Вот как я работал над проблемой:

Установка предложенных патчей не помогла. После углубления в проблему я обнаружил, что хотя на сервере установлен патч http://support.microsoft.com/kb/2836939, браузер по-прежнему распознается как Mozilla с версии 0.0 на сервере. После дополнительных исследований я обнаружил, что если у вас есть файл .browser в вашей папке app_browsers, версия, обнаруженная на сервере, неверна, а именно Mozilla 0.0.

Чтобы обойти проблему, я создал пользовательский .browser файл в каталоге app_browsers со следующим содержимым:

<browsers>
  <browser id="IE11" parentID="Mozilla">
    <identification>
      <userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />
      <userAgent nonMatch="IEMobile" />
    </identification>
    <capture>
      <userAgent match="Trident/(?'layoutVersion'\d+)" />
    </capture>
    <capabilities>
      <capability name="browser"              value="IE" />
      <capability name="layoutEngine"         value="Trident" />
      <capability name="layoutEngineVersion"  value="${layoutVersion}" />
      <capability name="extra"                value="${extra}" />
      <capability name="isColor"              value="true" />
      <capability name="letters"              value="${letters}" />
      <capability name="majorversion"         value="${major}" />
      <capability name="minorversion"         value="${minor}" />
      <capability name="screenBitDepth"       value="8" />
      <capability name="type"                 value="IE${major}" />
      <capability name="version"              value="${version}" />
    </capabilities>
  </browser>

  <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->
  <browser id="IE110" parentID="IE11">
    <identification>
      <capability name="majorversion" match="11" />
    </identification>

    <capabilities>
      <capability name="ecmascriptversion"    value="3.0" />
      <capability name="jscriptversion"       value="5.6" />
      <capability name="javascript"           value="true" />
      <capability name="javascriptversion"    value="1.5" />
      <capability name="msdomversion"         value="${majorversion}.${minorversion}" />
      <capability name="w3cdomversion"        value="1.0" />
      <capability name="ExchangeOmaSupported" value="true" />
      <capability name="activexcontrols"      value="true" />
      <capability name="backgroundsounds"     value="true" />
      <capability name="cookies"              value="true" />
      <capability name="frames"               value="true" />
      <capability name="javaapplets"          value="true" />
      <capability name="supportsCallback"     value="true" />
      <capability name="supportsFileUpload"   value="true" />
      <capability name="supportsMultilineTextBoxDisplay" value="true" />
      <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
      <capability name="supportsVCard"        value="true" />
      <capability name="supportsXmlHttp"      value="true" />
      <capability name="tables"               value="true" />
      <capability name="supportsAccessKeyAttribute"    value="true" />
      <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />
      <capability name="vbscript"             value="true" />
    </capabilities>
  </browser>
</browsers>

Аналогичный подход предлагается в следующей статье: Ошибка doPostback в IE 11+ Windows 8.1

Я хотел бы уточнить, что проблема происходит только с .NET 4.0. С .NET 4.5 браузер и его версия обнаружены правильно.

Ответ 3

Я пробовал каждый патч, который я видел в Интернете, включая те, которые перечислены здесь. Единственное, что на самом деле работало, это установка .NET 4.5 Framework на сервере.

Получите его здесь: http://www.microsoft.com/en-us/download/details.aspx?id=30653

Надеюсь, это спасет кого-то несколько часов, которые я потерял на этом.

Ответ 4

Для тех, кто пытается понять, почему user2919107 отвечает выше (помещая пользовательский файл .browser для IE11 в папку App_Browsers) не работает, попробуйте коснуться существующего файла .browser в папке App_Browsers.

Простое создание/копирование файла IE8.browser не работает. Вам нужно коснуться существующего файла .browser, чтобы содержимое App_Browsers было скомпилировано и учтено.

Ответ 6

Если вы используете Windows 2003 и не можете применить какое-либо исправление; попробуйте установить свойство ClientTarget объекта Page на странице Page_Init вашей страницы ASP.NET, чтобы "повысить уровень".

protected void Page_Init(object sender, EventArgs e)
{
    Page.ClientTarget = "uplevel";
}

Ответ 7

У меня также была эта проблема. Я пробовал все, кроме установки .NET 4.5. Я просто искал краткосрочное решение, прежде чем перейти на .NET 4.5. Панайотис Пулос был прав относительно нового файла .browser. Я коснулся существующего файла .browser, и мой новый файл IE.browser теперь распознается. Насколько мне известно, все работает снова.

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

Ответ 8

Если вы загрузили IE 11, но используете оригинальный браузер IE, поставляемый с Windows, пользовательский агент браузера немного отличается, а самый высокий ответ не будет работа.

Вам просто нужно изменить эту строку:

<userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />

:

<userAgent match="Trident\/7.0;(?'someGarbage'[^'rv:']*) rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" />

Ответ 9

Обнаружено временное исправление.

Я попытался применить исправление, но не смог установить исправление. Ошибка: kb2600088 не применяется или заблокирован другим условием на вашем компьютере. Вероятно, из-за .NET 4.5, я googled abit, но я не хотел удалять .NET 4.5, поэтому я не выполнил его.

Итак, чтобы обойти исходную проблему, запустите IE11 и зайдите в консоль разработчика, нажав F12. На вкладке "Эмуляция" установите режим документа на "10" и в строке "Пользовательский агент" установите значение "10". Я считаю, что он эмулирует IE 10, который отлично работает, не сталкиваясь с этой ошибкой.

Это только работа. Не исправить. Надеюсь, это поможет тем, кто пытается выполнить работу.