web-dev-qa-db-ja.com

IE11プレビューで「WebForm_DoPostBackWithOptions」が未定義

IE11が近づいています。開発者プレビュー版をインストールしました。ただし、Webアプリケーションの一部を実行して、エラーWebForm_DoPostBackWithOptionsは未定義です

自動ポストバックDropDownListで遊んでいたときにエラーがポップアップしました。

さらに、以前はIE10でも同様の問題があったようです。

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

24
user2376512

最後に、解決策を見つけました。スコット・ハンターのアドバイスに感謝します。

IE11の問題を解決する場合は、以下の修正プログラムをインストールしてください。

6
user2376512

.NET 4.0フレームワークでInternet Explorer 11が正しく検出されないという同様の問題がありました。問題を回避する方法は次のとおりです。

提案されたパッチをインストールしてもうまくいきませんでした。問題をさらに掘り下げた後、サーバーに http://support.Microsoft.com/kb/2836939 パッチがインストールされているにもかかわらず、ブラウザーはバージョン0.0のMozillaとしてまだ認識されていることがわかりました。サーバー。追加の調査の後、サイトの.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 failed in in IE 11+ Windows 8.1

この問題は.NET 4.0でのみ発生していることを明確にしたいと思います。 .NET 4.5では、ブラウザーとそのバージョンが正しく検出されます。

39
user2919107

上記のuser2919107の回答(IE11のカスタム.browserファイルをApp_Browsersフォルダーに置く)が機能しない理由を理解するのに苦労している人は、App_Browsersフォルダーの既存の.browserファイルをタッチしてみてください。

IE11 .browserファイルを作成/コピーするだけでは機能しません。 App_Browsersのコンテンツが再コンパイルされて考慮されるように、既存の.browserファイルに触れる必要があります。

6

ここにリストされているものを含め、インターネットにリストされているのを見たすべてのパッチを試しました。実際に機能しているように見える唯一のことは、.NET 4.5 Frameworkをサーバーにインストールすることでした。

ここで入手: http://www.Microsoft.com/en-us/download/details.aspx?id=3065

これで誰かが私がこの時間で失った数時間を節約できることを願っています。

6
ckozl

はい、これは同じコアの問題であり、2013年6月のASP.NETホットフィックスで修正されています。 http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-Explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-geckoを参照してください-webkit.aspx

1
EricLaw

私もこの問題を抱えていました。 .NET 4.5をインストールする以外のすべてを試しました。 .NET 4.5にアップグレードする前に、短期的なソリューションを探していました。 Panagiotis Poulosは、新しい.browserファイルについては正しいです。既存の.browserファイルに触れたところ、新しいIE .browserファイルが認識されるようになりました。すべてが再び機能するようになりました。

要するに、 this guys の指示に従ってください。ただし、.browserアプローチを試す場合は、独自の.browserファイルをアップロードした後、既存の.browserファイルをタッチすることを忘れないでください。

0
bowserm

これに対する一時的な修正が見つかりました。

修正プログラムを適用しようとしましたが、修正プログラムをインストールできませんでした。エラーは次のとおりです:kb2600088は適用されないか、コンピューター上の別の条件によってブロックされています。おそらく.NET 4.5のせいで、abitをグーグル検索しましたが、.NET 4.5をアンインストールしたくなかったので、フォローしませんでした。

したがって、元の問題を回避するには、IE11を起動し、F12を押して開発者のコ​​ンソールに移動します。 「エミュレーション」タブで、ドキュメントモードを「10」に設定し、ユーザーエージェント文字列で「10」に設定します。私はそれがIE 10をエミュレートすると信じています。これはこのバグに遭遇することなく完璧に動作します。

これは回避策にすぎません。修正ではありません。それが仕事を成し遂げようとしている人々を助けることを願っています。

0
f0rfun

Windows 2003を実行していて、修正プログラムを適用できない場合。 ASP.NETページのPage_InitのPageオブジェクトのClientTargetプロパティを「uplevel」に設定してみてください。

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

IE 11をダウンロードしたが、Windowsに付属の元のIEブラウザを使用すると、ブラウザのユーザーエージェントは少し異なり、 最も賛成の回答 は機能しません。

この行を変更するだけです:

<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'[^)]*)" />
0
Pouki