2011-07-18 12 views
1

IE 8で奇妙な問題が発生しています。ASP.Net MVC Ajax/InsertionMode/HTML5/IE 8

ここには何がありますか? Asp.net MVC 3を実行する。Ajax.beginformを使用してデータバッグをポストする。レスポンスはHTML 5を含むビューを返します(セクションタグのみ)。 HTML5が何であるかを知っているブラウザでうまく動作します。

@using (Ajax.BeginForm(new AjaxOptions {InsertionMode = InsertionMode.Replace, UpdateTargetId = "main" })) 
{ 
    <section class="stackoverflow">Hello World!</section> 
} 

しかし、IE8では、HTMLが挿入されると、いくつかのファンクが発生します。開発ツールを使用して要素を検査するIE 8が自己セクションタグを閉じるの代わりに、このような内容を中心にタグをラップであることを示しています

<section class="stackoverflow"/> 
Text - Hello World! 

私たちは、人気のHTML5のSHIV JSファイルを参照しているが、それdoesntのは、持っているように見えますページ読み込み後の影響。どのようなJavaScriptが挿入を行っていても、新しいセクションタグを認識していないようです。

もう1つ興味深いのは、UnobtrusiveJavaScriptEnabledがweb.configでfalseの場合、うまくいきます。しかし、いくつかの理由でUnobtrusiveJavaScriptEnabledを有効にする必要があります。

アイデア?

答えて

1

無効にするUnobtrusiveJavaScriptEnabledはMicrosoft Ajaxライブラリを使用しますが、有効にするとJqueryライブラリを使用します。これは、無効になっているときに働くことと、有効になっているときに働くこととの間に矛盾がある理由です。 JQueryはDOM要素を挿入するときにinnerHTMLを使用しませんが、MSライブラリはそうします。

私はinnershivというプラグインを使用していくつかの回避策を見つけました。ここではいくつかの参照は、次のとおりです。
http://code.google.com/p/html5shiv/issues/detail?id=4

http://tomcoote.co.uk/javascript/ajax-html5-in-ie/
Can't select HTML5 element's children in IE8 with jQuery selector


は、我々はまた、この問題が報告されたバグであるHTML5のSHIVを使用しています