0

ASP.Net MVC 4 アプリケーションへのモバイル機能の追加に関するこのチュートリアルに従っています。

アプリケーションを起動すると (ログイン ページが読み込まれます)、Access deniedjQuery 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 が失敗する原因は何ですか?

4

2 に答える 2

0

このページには、モバイル バージョンのページに存在する必要のないサード パーティ スクリプト ( Comodo SSL検証)への参照があったことが判明しました。jQuery Mobile が関連する DOM を操作しようとしたため、エラーが発生しました。

于 2012-04-19T22:29:15.420 に答える