ASP.Net MVC 4 アプリケーションへのモバイル機能の追加に関するこのチュートリアルに従っています。
アプリケーションを起動すると (ログイン ページが読み込まれます)、Access denied
jQuery 1.7.2 では次のようになります (これも 1.7.1 で再現されています) 。
if ( elem.parentNode ) { // Access denied here, Line 6081
elem.parentNode.removeChild( elem );
}
コール スタックをたどると、jquery.mobile-1.1.0.js に次のように表示されます (コール スタックには他にもいくつかのメソッドがあります)。
// Called from .initializePage:
if ( !$pages.length ) {
$pages = $( "body" ).wrapInner( "<div data-" + $.mobile.ns + "role='page'></div>" ).children( 0 ); // Called from here, Line 7475
}
// First method in jquery.mobile:
if( $.mobile.autoInitializePage ){
$.mobile.initializePage(); // Called from here, Line 7541
}
アプリケーションから jquery.mobile をコメントアウトすると、以前と同じように機能します。
// _Layout.cshtml:
<script src="@Url.Content("~/Scripts/jquery-1.7.2.js")" type="text/javascript"></script>
@*<script src="@Url.Content("~/Scripts/jquery.mobile-1.1.0.js")" type="text/javascript"></script>*@
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.19.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
すべての JavaScript ファイルは、メイン プロジェクトのドメインから組み込みの VS2010 Web サーバーを介して提供されています。
アップデート
さらに調べてみると、エラーが発生したときに jQuery Mobile が行っていることは次のとおりです。
// find and enhance the pages in the dom and transition to the first page.
// if no pages are found, create one with body's inner html
$pages = $( "body" ).wrapInner( "<div data-" + $.mobile.ns + "role='page'></div>" ).children( 0 );
jquery.mobile が失敗する原因は何ですか?