我正在关注向 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 失败?